Firmware Version: 1.1.21.9 (Previous release for IBM Rack)
Incremental Interoperability: - IBM Server machine types. Refer to IBM ServerProven for specifics
Problems Fixed: - Fixed FCP_CONF handling bug - No SRR sent after drop write data frame, I/O fails - Adapter does not invoke recovery after dropped read data frame - I/O throughput performance improvements - Link failover when connected to FC Tape - Cosmetic: Cleaned up miscellaneous error handling messages in debug log files - If a new device comes online and attempts to acquire an AL_PA after the link has already come up, the FC link appears to hang until the cable is pulled - Cleaned up link negotiation at 4GB/8GB/16GB speeds with specific switches
- Fixed issue where acceptable indistro device drivers may not pass minium driver check. BIOS Changes Enhancement(s): - Core BIOS and BIOS configuration utility will display "FF" as the PCI slot number when proper slot information is not available. - Increased the disk drive spin-up timeout value to accommodate disk drives having larger spin up times.
Fix(es): - Fixed an issue where the adapter order does not get written to NVM and "Updating Adapter Order" displays on every reboot. - Fixed issue where zero sized volume was showing "4. 0 GiB." - Fixed issue where devices, which are not attached to adapter 0, could not be promoted to positions in the boot order when they were selected in the configuration utility. - Fixed an issue where IOS Banner(POST) not showing SAS Discovery error when more than one HBA is connected to the host system. - Fixed an issue where the SMART status is not correctly displayed for bare drives. - Fixed an issue in SAS topology where a RAID disk is highlighted and attempted to set as preferred boot device or alternate boot device, the configuration utility displays a SAVE/DISCARD prompt. - Fixed an issue where the firmware was showing a large elapsed time when a format operation crosses midnight in the system clock.
Firmware Changes Enhancement(s): - Added support for 4GB DIMM - Added the ability for user the enable/disable of the drive write cache during the BIOS start up.
Fix(es): - Fixed an issue where a request sense command, which is executed after a SATA drive is in active state is moved to idle power condition state, has no 'Additional Sense' information set. - Fixed an issue where protected information error "Logical block reference tag check failed" is received when an IR volume is deleted. - Fixed an issue Self-Test Results log page where values for update parameter code, format and linking, and parameter length are not recorded. - Fixed an issue sending vital product data inquiry with vital product data page set as invalid (0xFF) while diagnostic is running on a SATA drive results in segmentation fault 0x1901. - Fixed an issue where input/output is sent to SATA drives before the drives are ready. - Fixed an issue where fault 8405 was being hit while disabling and enabling the phy to which secondary drive is connected with IOs active. - Fixed an issue where subsequent commands sent to a SATA drive fail after a write same command failure until NCQ error handling is triggered or the device is reset. - Fixed an issue where Report Luns command sent to SATA drive fails if the drive is spun down. - Fixed an issue where hotspare does not resynch with second raid volume when both volumes are in degraded state. - Fixed an issue where incorrect sense data is populated when Security Protocol IN/OUT command is sent to supported drive. - Fixed an issue where allocation length for inquiry SCSI Command is not handled Properly during SATA Drive Format. - Fixed an issue during SATA drive format where vital product data inquiry command is executed for SATA drive with invalid page code, and the command is passed with no data instead for failing with CC and sense data. - Fixed an issue where the host will not indicate the existence of the expander attached drives if the direct attached device re-ordering feature is enabled. - Fixed an issue where protected information errors are observed on a RAID 1 volume its BGI is not completed, and its member physical disks are removed and inserted. - Fixed an issue where the TM response was set to failed if the device is missing due to the DO NOT SEND TASK IU flag being enabled. - Fixed an issue where DMD (Device Missing Delay) timer is not set to the default time when the total Report Device Missing Delay is greater than 0x7F seconds. - Fixed an issue where RAID1 volume fails to resynch when a new compatible bare drive is available in the primary drive slot. - Fixed an issue where error handling for errors, that cause the DMA engines to halt, are not handled properly and multithreaded IOs can hang if the same control block is used too soon. - Fixed an issue where a third hotspare is created even if the number of hotspares currently present in the RAID Configuration is 2. - Fixed an issue where inactive foreign volume information cannot be seen in SASBIOS when a native volume is deleted.
UEFI Changes Enhancement(s) - Additional information such as vendor id and product id added to the HII Create Configuration Screen. - Added ability to check to detect missing hotspares to HII. - Modified to be obtained PCI Slot Number information from the system firmware protected information. - Additional character "M" will be displayed as part of the device display identifier of a multipathed disk. - Ability in HII to detect missing hotspares and provide a facility to delete the missing hotspares. - Implemented Configuration Summary and Simple Virtual Disk Creation Support for Unified Configuration Management. - Modified UEFI driver to wait for a maximum of 10 seconds for the controller to become ready, so controller gets discovered in the OS.
Fix(es): - Fixed an issue where Enable/Disable write cache does not work for SAS drives. - Fixed an issue where HII Configuration utility does not allow the user to create a RAID0 with single disk present in the topology. - Fixed an issue in Create Configuration menu where additional drive information is not getting updated appropriately in HELP area. - Modified to prevent Write Cache settings options from appearing for the IR firmware. - Fixed an issue where SATA volume members and hotspare drives are labeled as 'M' in a multipathed environment. - Fixed an issue to prevent HII from allowing the option to enable/disable write cache for SATA drives. - Fixed an issue where multipathing is disabled in Manufacturing page settings, but volume members and hotspare drives are labeled as "M." - UEFI driver modified to check BIOS Options in order to determine if is should manage the controller.
Fixes: - Fixed issue where HII do not report Multi-LUN devices from external RAID enclosure. - Do not show external RAID LUNs in HII RAID configuration page. - Report NVDATA version consistently in Hex or Decimal. - Fixed issue where update will not install with the 09.101 megaraid_sas device driver.
Note: HII changes may not affect all controllers. Changes for the controller are based on RAID volume support. - HII fix to return EFI_SUCCESS when RETRIEVE Action is given in HII Callback function. - HII fix for Write cache disabling fails for SATA HDD/SSD connected to the IT controller. - HII fix for saved Controller Events Filename. - Behvioral change for the way a volume is created in HII.
Note: The following fixes only effect blade systems that support Bofm. - Fixed boot issues in Windows 2008 where after installation in uEFI the os will not boot due to the BuildDevicePath not allocating enough memory for the DevicePathreturned to caller. - Fixed issue with Bofm configurations where the BOFM supplied addresses for external/switch attach Phys are being assigned to the internal/direct attach Phys. - Fixed a Bofm issue where the SAS WWIDs not reverting to Man Page 5 Default when a Blade is moved back to non-BOFM slot.
Note: HII changes may not affect all controllers. Changes for the controller are based on RAID volume support.
- HII change to Remove Legacy BIOS Enable/Disable option. - Fixed issue where after creating a volume using SATA SSD the Associated Physical Disks always show up as SATA HDD. - Fixed issue where a hotspare could not be created for any volume in the HII browser. - HII fix for the View Physical Disk Properties form where the Serial number of SATA disks were being displaced with a space. - HII fix for the IR help strings displayed when using an IT controller. - Fixed HII issue where a 'Question value mismatch with Option value' error occurs when saying No for creating RAID10/RAID1E volume. - Fixed HII issue where help is not available when having only RAID0 and RAID1 levels in Create Configuration form. - Fixed a problem where the UEFI driver ATA PassThru Protocol is corrupt while trying to access the Mode field. - HII behavior change for 'Manage Foreign Configurations.' - HII change to provide proper extended RAID Levels in help messages based on supported extended RAID Levels.
ServeRAID M1000 Series SAS/SATA Controller Firmware Update
Adapters Supported: ServeRAID M1115 SAS/SATA Controller for IBM System X (81Y4448) ServeRAID M1015 SAS/SATA Controller (46M0831)
Version 20.11.1-0184 - Suggested ------------------- Fixes: - Updated SBR to avoid an errata that could cause correctable CPU errors on some systems. - Fixed an issue where NULL events may show in event log, preventing capture of controller event logs.
Version 20.11.1-0137 - Suggested ------------------- Enhancement(s): - Update recovery mode page (WriteRetryCount and recoveryTimeLimit) during discovery of a drive and during spinup recovery when sense 6/29 is received.
Fixes: - Fixed an issue where certain drives were reporting a temperature of 65 degrees Celsius. - Fixed an issue where systems with SSD HDD will pop up an error message after creating a virtual drive via HII on M1115. - Fixed an issue where the drive state is not modified when a recon virtual drive is created from the reboot path.
Version 20.10.1-0107 - Suggested ------------------- Fixes: - Fixed grammatical errors in WebBIOS. - Fixed an issue in WebBIOS Drive Group Definition screen where enclosures should not be selectable in the Drives column. - Fixed an issue in uEFI-WebBIOS where the white bars do not match up under VD properties page. - Fixed an HII browser issue where a drive performing a copyback displayed the state as "Replacing" but other utilities showed the state as copyback. - Fixed an HII browser display issue where SATA drives showed "0" for the value of RPM under drive properties. - Fixed a display issue where the HDD port number showed incorrectly in an HII browser. - Fixed an HII browser issues where creating a global hotspare gave the user an error message. - Fixed an HII browser issue when security is changed with local key management the changing security report current mode is disabled as external keu management. - Fixed an HII browser issue where the user got the following error message, "The request command has invalid arguments," when changing the security key report. - Fixed an HII browser issue where the user was unable to save the configuration after adding an extra span during array creation. - Fixed an HII browser issue where the return value was not correct when the browser called extract config with a result of null.
Version 20.10.1-0101 - Suggested ------------------- Fixes: - Fixed an issue where a system uefi error will occur when the bootTargetId is set to 0. - Fixed a problem where the firmware will allocate the sata bbl entry for the drive when moved from unsupported to supported. - Fixed a firmware issue where the TargetId for the recon LD should be set to its original LD. - Fixed a HII error message "Question Value mismatch with Option value!" after selecting factory defaults in HII. - Fixed an issue where the firmware fails to create the configuration and utilities fail to report the VD size after the reconstruction.
Version 20.10.1-0091-01 - Non-Critical ------------------- Fix - Fixed issue where update may fail to find all supported controllers in SLES 11 SP 2. Note not change in the firmware; it is the same as package 20.10.1-0091.
Version 20.10.1-0091 - Suggested ------------------- Enhancement: - Add support for ServeRAID M1115
Fixes: - Fixed issue where after starting a reconstruction on a RAID 0 the progress %, does not increase. - Fixed an issue where a new drive, inserted after a drive failure, goes to JBOD and not auto rebuild. - Fixed physical drive count issue that stated more than (16) devices already exists
Version 20.10.1-0069- Suggested ------------------- Enhancement: - ServeRAID M1015 Dimmer Switches are disabled by default.
Fixes: - Fixed issue where enabling security causes the configuration to be missing, and a configured FDE array to be seen as foreign on reboot. - Fixed issue where WebBIOS gives garbled message when enabing FDE on an existing Disk Group - Fixed issue where the logical Unit ID (VPD page 0x83) changed after foreign import. - Fixed issue where the LDBBM entries are incorrect after foreign import. - Fixed a problem where firmware was taking to long to complete the PCI config read. Causing the system to generate an NMI. - Fixed issue where the controller does not work with pci set to nomsi in kdump kernel. - Fixed issue where the LED behavior is incorrect, wrong drive will blink activity. - Fixed issue where the configuration becomes foreign after the firmware fails multiple attempts to access raid key during boot. - Fixed firmware issue where a replacement drive is not seen if the replacement is added during power cycle. - Fixed an intermittent RAID key failure during power-on.
Version 20.10.1-0052- Critical ------------------- Enhancement: - Add support to pass SMART errors for JBOD drives to MSM
Fixes: - Added check to return SCSI sense Check condition if PMI is set and LBA is non zero for SCSI Read Cap 16. - Fixed issue where a bluescreen occurs handling RAID 1 with HSP and medium errors. The bluescreen occurs becausethe driver timesout while fw is retrying sense 0x02. Firmware causes Fatal Error when HSP drive responded with Sense 0x02 for Write/Verify or TUR - Fixed hang condition or condition where the uEFI driver does not load due to the uEFI Driver issuing a command in poll mode to firmware to early
Version 20.10.1-0045 - Critical ------------------- Fix: - Fixed issue where firmware has incomplete writes during power fail and recovery
Version 20.10.1-0036 - Critical ------------------- Fixes: - Fixed issue where uEFI WebBIOS version may not display the product name of the second controller - Fixed issue to prevent users to downlevel firmware to older versions - Fixed an issue where firmware reports "Unexpected sense, Invalid field in CDB" for LOG SENSE command sent to Seagate drives - Fixed issue where SMART failures can take longer then 5 minutes to report or in some cases fail to report - Fixed issue where it appears to the user the harddrive cache policy is changed when requested but the change did not occur
Version 20.10.1-0022 - Critical ------------------- - Fixed issue where Windows 2008 R2 WS08 cannot be installed properly on ServeRAID M1015 SATA JBOD with a uEFI boot. - Added warning message when user tried to change more then 16 drives to JBOD. - Addressed a problem where direct attached drives are given incorrect slot numbers - Added fixes from LSI channel products. - Fixed issue where a single JBOD drive will not boot after a Windows 2008 R2 installation.
Version 20.5.1-0014 - Critical ------------------- - Addressed data issue with database applications that use overlapping read write operating. - Addressed data issue which may occur during a reconstruction on some RAID levels that have an associated CacheCade virtual drive enabled. - Fixed problem where the controller may halt if a drive has medium errors that are being used in a check consistency, patrol read, or have delayed writes.
Version 20.1.1-0059 - Critical ------------------- Fixes: - Fixed an issue where a physical drive that is changed to JBOD from powersave will become unconfigured good again - Addresses an issue where data becomes inaccessible when a drive is secured after data has been written
Version 20.1.1-0049 - Suggested ------------------- Enhancement - Support M1000 key for RAID 5 and SED support
Fixes: - Fixed an issue in M3950M3 where webbios would hang - Fixed an issue where the controller properties in WebBIOS such as Rebuild, CC and BGI are not changing when we use up and down arrow keys. - Fixed an issue where Enclosure ID's are not being shown in MSM
Version 20.1.1-0046 - Suggested ------------------- - Enabled support for the ServeRAID M1000 Series Advanced Feature Key.
Note: All Logical Drives must previously have the encryption enabled before data is written on to the SED drives. Please read Retain TIP H123152 for more details.
Version 20.1.1-0042 ------------------- - Initial release ibm_fw_sraidmr_1000-20_11_1-0184_linux_32-64_chg
=============================================== Change History =============================================== Document Name: Change History Document Status: IBM General Avalibility Document Version: 3.2.4 Latest Driver Version: 3.2.4.0 Document Updated: 11/11/2013 Product: Brocade FC HBA / FCoE CNA
=================================================
Please visit www.brocade.com/hba for full documentation, additional drivers, and management applications.
Version 3.2.4.0 New Features and Feature Enhancement: - Support for RHEL5.10 and RHEL6.5
Version 3.2.3.0 New Features and Feature Enhancement: - Support for patching firmware via boot image - Support for Linux PTP - Support for UEFI Health Check Protocol - Support for SLES11SP3
Version 3.2.1.0 New Features and Feature Enhancement: - Support for "IBM Flex System FC5024D 4-port 16Gb FC Adapter" PART_NUMBER "95Y2381" - Support for RHEL5.9 and RHEL6.4
Fixes and Enhancements: - Enhanced Linux driver data path to properly handle IPv6 packets. - Enhanced Linux driver to make sure user configured path tov value is persistent and is not changed due to change in dev_loss_tmo.
Version 3.2.0.0 New Features and Feature Enhancement: - For Brocade 8x5/4x5, I/O interrupt latency values are dynamically updated. Changes are effective for all the ports on the given adapter. - Addressed infrequent PSOD in VMware ESX with iSCSI or VLAN configured traffic in DCB enabled network. - Enhanced BR1860 Tape IO performance. - Improved BR1860 initialization on Xen kernel.
Fixes and Enhancements: - BB Credit Recovery - Forward Error Correction (FEC) - Diagnostic Port (D-Port) - LUN Level IO Latency/Stats - UCM (Unified Configuration Manager) - Windows Network Performance and scalability enhancement
Version 3.1.0.0 Key features and enhancements supported for the software release 3.1.0.0 include the following:
New Features: - D-port support between Brocade 16Gb HBAs and Brocade 16Gb FC switch platforms with FOS v7.0.1 and later releases - FC-AL support for direct attach to storage - Ability to assign minimum bandwidth to each vNIC - Queue Depth adjustment - FC QoS set by percentage - Performance enhancements in Ethernet drivers - Technology Preview support of 1860 HBA on Power PC architecture
Fixes or Enhancements: - Resolved an issue where HCM Agent may not start if BR1860 adapter is configured in NIC mode. - Improved stability with Hyper-V and Teaming configurations. - Resolved I/O errors when running traffic with Brocade HBAs(models 415, 425, 815, 825, and 804), if the server’s PCI max read request size is configured to be 2K or greater with PCI Gen2x8.
Version 3.0.0.0 Fixes and Enhancements: - Added support for Brocade 1860 AnyIO Fabric Adapter (User configurable port mode - FC or NIC or CNA) - Added Fibre Channel 16G Support - Enabled Fabric Assigned Address in Fibre Channel Fabric - Added PF based Virtualization – vHBA - Enhanced CLI, HCM GUI and CIM support in inbox drivers. - Added PF based Virtualization - vNIC - Added iSCSI over DCB Support - Added Multiple Tx Priority Queues Support - Added SNMP Support
Version 2.3.0.3 Fixes and Enhancements: - Enhanced SNIA API to report port speed of 4 and 8Gbps in SNIA format. - Enhanced XIV array interoperability that addresses a data integrity corner case. - Enhanced the transmit path handling in Linux Network Driver to avoid a corner case that could lead to transmit path stall. - Enhanced the Linux Adapter Software installer script to update the initrd with the correct name even when there are multiple copies of the OEM specific initrd(s).
Version 2.3.0.0 Enhancements: - Enabled HP DL120 server to support Boot over SAN with two Brocade HBAs installed. - Improved network driver CPU and performance optimization. - Enabled automated target and LUN discovery of enterprise HDS storage once LUN masking has occurred. - Improved Tivoli interoperability to meet device display requirements.
Version 2.2.0.1 Added capability to handle ADISC frames. Unhandled ADISC use can cause SAN boot failure when booting from IBM storage array.
Version 2.2.0.0 Adds support for bootcode updates to Bladecenter 10G Converged Network Adapters
Version 2.1.0.0 Adds support for bootcode updates to 10G Converged Network Adapters
Version 2.0.0.0 Initial release for 4/8G FC HBAs brcd_dd_nic_bna-3_2_4_0_sles11_32-64_chg
=============================================================================== Emulex NIC Device Driver for Linux ===============================================================================
Driver Version: 4.6.267.4 (supported on IBM System x, BladeCenter and Flex)
Problems Fixed: - Under certain conditions, performance issues may be seen with multi-channel in RHEL6.4 KVM configurations - Under certain conditions, performance issues may be seen with multi-channel in RHEL6.4 SR-IOV configurations - SR-IOV configuration section of the Linux NIC Driver Documentation has been modified to improve clarity
Incremental Interoperability: - S3 Resume on IBM Flex - SLES 11.3 on IBM System x and BladeCenter
Known Issues: - SRIOV is supported with the following Linux distributions: RHEL 6.3 and 6.4 64 bit RHEL 6.3 and 6.4 64 bit with KVM (guest support is dependent on the Emulex driver version present in the guest)
SLES11 SP2 and SP3 64 bit SLES11 SP2 and SP3 64 bit with KVM (guest support is dependent on the Emulex driver version present in the guest)
Use of SR-IOV with the XEN hypervisor is not supported at this time Use of SR-IOV with the KVM hypervisor requires the use of macvlan interfaces
Device Driver Version: 4.6.148.0 (Supported on IBM System x & BladeCenter)
Problems Fixed: - Ethernet performance issues in a variety of workloads - VFs are not displayed after driver re-load when is VFs attached to VM - vLAN tagging in Switch Agnostic vNIC mode
Incremental Interoperability: - RHEL 5.9 - RHEL 6.4 - Network performance varies with workload. An ethernet driver tuning script and instructions is now included with the be2net driver. - Switch Independent Mode within hypervisor OS's
Known Issues: - Multi-channel is not supported in RHEL5.x XEN. This is a kernel limitation - Under certain conditions, performance issues may be seen with multi-channel in RHEL6.4 KVM configurations - Under certain conditions, performance issues may be seen with multi-channel in RHEL6.4 SR-IOV configurations - SR-IOV is not supported with RHEL5.x XEN
Driver Version: 4.4.180.0 (Previously supported on IBM Flex) Driver Version: 4.2.389.0 (Previously supported on IBM SystemX & BladeCenter)
Problems Fixed: - Unloading the driver hangs the system after running IPv6 traffic - Link status messages cleaned up when in Switch Agnostic mode - Miscellaneous network performance issues to improve throughput - Miscellaneous problems related to SRIOV to improve usability - Ethtool wol command displays wol enabled even when disabled - Ethtool speed reported as 10000Mb/s for disabled devices in Switch Agnostic mode
Incremental Interoperability: - RHEL6.3 GA Kernel - Increase default B/W for SRIOV vf's to 10Gb from 100Mb
Known Issues: - SR-IOV configuration section of the Linux NIC Driver Documentation will be modified as follows to improve clarity (noted by << >>):
11. Use the Virtual Machine Manager GUI to attach the VF (step 7 on page 34) to the guest operating system by using the add physical device option.
<< Note 1: If user wants to re-configure an already configured setup, it can be done by removing the attached VF from the respective guest operating system using the remove option after selecting the VF attached. And then attaching another VF (step 11).
Note 2: Consult the documentation for your host operating system for help using the Virtual Machine Manager to attach and detach virtual interfaces. >>
12. Start the RHEL 6.x guest operating system. Once the guest operating system is booted, use the lspci command to confirm the visibility of the OneConnect NIC function. The output shows a OneConnect NIC function, for example: 03:00.0 Ethernet controller: Emulex Corp. Emulex OneConnect 10Gb NIC (be3)
13. The OneConnect Ethernet driver automatically loads with the inbox driver, and creates the network interfaces. Use the ifconfig command to verify that the interface is created.
14. After configuring the network interfaces with proper IP addresses, you can send and receive network traffic from the VM. << (Consult the documentation for your host and guest operating systems for network configuration help).>>
Driver Version: 4.1.413.0 (Previously supported on IBM SystemX & BladeCenter)
Problems Fixed:
- WOL changes for Linux NIC driver as mentioned in Bug# 24543 - SR IOV UE when attempt to do multiple (3 times) driver load/unload - Speed is 10000Mb/s for Disabled devices in UMC Mode - Incorrect Duplex value is shown for unconnected port of NC552m in Rhel6.1 32bit - SLES 11 SP2 GMC: Enable support for Lnx NIC Driver - SRIOV: When VGT is configured for a VF, ip link show doesn't display it for the VF configured. - RHEL 5.8 GA: Enable support for Lnx NIC Driver - ip link command with vlan = 4095 has toggling effect - ip link command with vlan =0 should remove guest VGT privilege
Driver Version: 4.1.334.39 (Previously supported on IBM SystemX & BladeCenter)
- SR-IOV: Can't load be2net driver in a VM after the VM has been rebooted - SR-IOV: Unload PF driver with VF driver loaded causes system instability - SR-IOV: VF MAC always gets Emulex OUI - SR-IOV: Partition the limited per port VLAN entries across VFs and PFs - Non Member VLAN packets not received in interface promiscuous mode in BE3 - Avoid CQ full condition in HW - be2net: use RX_FILTER cmd to program multicast addresses - account for skb allocation failures in ethtool stats - Support 60 second delay to Linux NIC driver to allow FAT dump completion on recovery from EEH - Link status is up [ethtool and OCM] when the bandwidth is assign 0 for UMC configuration - Remove msix module parameter - Use V1 version of COMMON_NTWK_LINK_STATUS_QUERY for Lancer. - Emulex: Ethtool failing to update FW - Emulex: Panic in be2net driver in SLES11-SP2-B7 on adapter - TCP ACKs from different connections are getting received in single queue - Multicast filtering feature not working on PPC - Exit of mcast promiscous mode not working - VLAN promiscous mode cannot be set on Lancer - Can't communicate after changing MAC address via VLAN interface - Improper memory accounting in received packets - WOL changes for Linux NIC driver as mentioned in bug - Transparent VLAN tagging feature not working in SR-IOV elx_dd_nic_ibm1212-4_6_267_4-3_sles11_32-64_chg
uEFI Flash Update Version 1.70 (BuildID D7E140Y) Change History
Version 1.70 - BuildID: D7E140Y ------------------------------------------------- Problem(s) Fixed: - Fixed the system boot failure due to low PCI memory-mapped resource for a VGA device - Incorporated Intel Microcode Update (MCU) MED 306E4_00000427 to address Intel Erratum Enhancements: - Enhanced memory SPD logging for Intel E5-2600 v2 processors - Enhanced error logging for memory-mirroring mode configurations - Support Memory Reference Code Release version 2.0.0.3 - Support AES enable/disable by ASU - Enhanced IBM boot manager - Enhanced TPM Physical Presence lock algorithm Limitations: - When flashing UEFI from version 1.30 or later to a version earlier than 1.30, a "Boot Configuration Error" message will be logged into the UEFI error log. This error does has no impact on the system configuration or operation. No errors are logged when flashing from an earlier version to version 1.30 or newer. Dependencies: - The IMM firmware must be at BUILDID: 1AOO58N Version: 4.30 (ibm_fw_imm2_1aoo58n-4.30_anyos_noarch) or higher prior to installing UEFI version 1.70. If the IMM level is lower, the UEFI update module will be rejected as invalid because of additional security features features implemented in this release.
Version 1.60 - BuildID: D7E136W ------------------------------------------------- Problem(s) Fixed: 1. Can not boot up from IMM Remote Mount with USB key. 2. Fixed that LR-DIMM 1333Mhz 1.35V memory speed is incorrect at Balanced mode Enhancements: 1. Support two DIMM Per Channel run at 1866Mhz for 16GB RDIMM 1.5V DR x4 & 32GB LRDIMM QR x4 2. Variable store self-healing. Limitations: 1. When flashing UEFI from version 1.30 or later down to version 1.20 or lower, a "Boot Configuration Error" message will be logged into the UEFI error log. This error does has no impact on the system configuration or operation. No errors are logged when flashing from an earlier version to version 1.30. Dependencies: 1. The IMM firmware must be at BUILDID: 1AOO50D Version: 3.65 (ibm_fw_imm2_1aoo50d-3.65_anyos_noarch) or higher prior to installing UEFI version 1.60. If the IMM level is lower, the UEFI update module will be rejected as invalid because of additional security features features implemented in this release.
Version 1.50 - BuildID: D7E134E ------------------------------------------------- Problem(s) Fixed: 1. Corrected IPv6 reboot problems 2. Corrected 64bit resouce allocation problems 3. Fix CPU frequence lockdown when UEFI recalibrates the power levels during first cold boot Enhancements: 1. Add support for Intel Xeon processor E5-2600 v2 product family 2. Add notification when UEFI detects GPT corruption during POST 3. Add support to configure the "Next Boot to F1 setup" function out of band 4. Add long text support in F1 setup help string 5. Implement LAN Fail-Over function Limitations: Dependencies:
Version 1.40 - BuildID: D7E128D ------------------------------------------------- Problem(s) Fixed: 1. Fixed that IB mezz card still shows "Standby Power Enable/Disable item" in uEFI setup menu 2. Fixed that can not enter F1 setup menu after 3x POST failure occurred. 3. Correct the PCIE link control of Active-State Power Management(ASPM) setting to result the PCI/NMI problem 4. Fix that UA-101 audio device hang at legacy mode Enhancements: 1. Multiple PCIe adapter BARs 2. Configurable MMIO base 3. Support Firmware first feature 4. Add informational messages when existing UEFI F1 setup menu 5. Add OEM SPD feature 6. Fixed the Preboot Execution Environment(PXE) function with Emulex 10 GbE Virtual Fabric Adapter III Limitations: Dependencies:
Version 1.30 - BuildID: D7E124C ------------------------------------------------- Problem(s) Fixed: 1. Fixed that some USB device hang at legacy mode (UA-101 USB audio device) 2. Disable CPU C-state and phase shedding for Volterra EOS issue Enhancements:
Limitations: Dependencies:
Version 1.30 - BuildID: D7E124A ------------------------------------------------- Problem(s) Fixed: 1. UEFI option 43 failed to work 2. ITP can't trigger CPU2 IERR 3. MBE WHEA-log can't match ECC Uncorrectable event 4. iMM lost connection with shared NIC on Intel mezz card (Meteorite) after power cycle Enhancements: 1. Change UDIMM 2DPC@1333Mhz 1.35V algorithm to meet performance specification requirement 2. Support ROM Recovery feature (Auto Promotion under Backup Bank Management Method) Limitations: Dependencies:
Version 1.20 - BuildID: D7E120C ------------------------------------------------- Problem(s) Fixed: 1. Sevaral uEFI OS boot failed with F12 boot menu HDD0. 2. Console Switch 1754A2X with KB & Mouse are not responding in EFI Web BIOS 3. Multiple issues caused by USB over current, including: 3.1 Unable to use front USB Port to flash firmware, load operating system or install a keyboard/mouse. 3.2 VMWare Purple Screen of Death (PSOD) during OS installation or booting. 3.3 Intermittent USB configuration change under Windows. 4. Fan speed goes to 100% after enable several TPM settings. 5. TPM 1.2 UEFI Preboot Interface Test (found CPU error) Enhancements: 1. Enable DRAM phase shedding 2. Support FastSetup feature 3. Support UDIMM 2DPC@1333Mhz running at 1.35V Limitations: Dependencies:
Version 1.10 - BuildID: D7E116A ------------------------------------------------- Problem(s) Fixed: 1. E5-2690 cannot run frequency at 2.9GHz(only 2.8GHz) when turn off Turbo mode. 2. Instruction for TPM enablement has type error. 3. CPU can not enter deep C status with uEFI 11I under RHEL5.7 64 4. Failed to boot from CDDVD ROM with uEFI OS 5. Best Card cannot link with Gen3 on Mezz Card slot 6. BestCard expr_mess_fatal and expr_mess_nonfatal would not get PCI error event and PCI error LED was off 7. iSCSI ISID mismatch under uEFI BIOS Settings. 8. TCG TPM Integration Test (Manual) random failed under WIN2K8 R2 SP1 with uEFI_11L 9. QPI link speed and Turbo mode show incorrect with M1 stepping CPU. 10.The format of System Event Log is uncorrected 11.Legacy Thunk Support is malfunctional 12.DIMM slot 13-24 can NOT indicate which memory was falut when trigger MBE on Mirror mode by bugged DIMM 13.ASUT74H can't find any iscsi item 14.BestCard ASB_Wiz stress test is failed with Gen 3 link speed 15.Fail to set some of PXE items with ASU76h 16.Can not boot into WinPE in RAID HDD on Crossfield 17.Personality can not be switched in OCM tool no matter FOD is imported 18.Processor speed is incorrect when system is idle 19.VLAN ID can be configured to ID 0 20.PCIX Best Card cannot get software NMI when trigger some of PCIX command 21.10G PCIe slot got incorrect slot error event by PCI-E Best Card 22.PCIe BestCard expr_flow got IERR 23.PCI led on and uEFI report OUT_OF_RESOURCES when system plug-in BussardE 10GbE adapter. 24.Processor speed is incorrect when system is idle w/ E5-2637 M1 25.Console redirection can not work normally with com2com. 26.No screen output with SOL connection 27.iSCSI Attempt will disapper when system reboot several times. 28.BestCard expr_mess_fatal and expr_mess_nonfatal would not get PCI error event on Internal RAID Slot 29.Purple Screen of Death when boot/install ESXi 5.0 to Hypervisor key
Enhancements: 1. Open Optimized Boot setup item with default enable 2. Open Legacy Thunk support setup item 3. Change Operating Mode from Custom Mode to Efficiency - Favor Performance 4. Remove USB port0 OverCurrent Mapping 5. Add DriverCodeDisplay error code on screen function
Limitations: Dependencies:
Version 1.00 - BuildID: D7E112J (Initial Release) ------------------------------------------------- Problem(s) Fixed: 1. High failure rate on front USB cable position/design cause all USB device disappear and could not flash via UXSPI
Enhancements: Limitations: Dependencies:
ibm_fw_uefi_d7e140y-1_70_anyos_32-64_chg
======================================================= Change History for Qlogic NIC Driver for SLES 11 ======================================================= Document Name: Change History Document Status: IBM General Avalibility Document Name: Change History Document Status: IBM General Avalibility Document Version: 5.5 Package Version: 5.2.46.4.c Latest Driver Version: 5.2.46.4 Document Updated: 05/22/2014 Product: Qlogic Linux NIC Device Driver
======================================================= Package version: 5.2.46.4.c Package version updated due to updated tools within package.
Please visit www.qlogic.com/hba for full documentation, additional drivers, and management applications.
Driver Version: 5.2.46.4
Driver Version: 5.0.29.4 Initial release of Qlogic NIC Driver for SLES 11
qlgc_dd_nic_qlcnic-5_2_46_4_c_sles11_32-64_chg
IBM Online SAS/SATA Hard Disk Drive Update Program Version 1.14.03-2 Build ID: SAS11403-2
NOTE TO SERVICE - Reference RETAIN TIPS H211424 & H211667 ********************************************************************* IBM SAS Hard Disk Drive Update Program Version 1.14.03-2 Critical Release Reference RETAIN TIP H211424 & H211667
This package includes updates to drives with product ID strings of:
SAS 3.5"
Initial Code Releases - ST1000NM0023, ST2000NM0023, ST3000NM0023, ST4000NM0023 to BC5B - ST2000NM0043, ST4000NM0043 to EC59 - WD1001FYYG-23S, WD2001FYYG-23S, WD3001FYYG-23S, WD4001FYYG-23S to XA35
Other - ST1000NM0001, ST2000NM0001 to BC4A - support persistent reservation - HUS723020ALS64, HUS723030ALS64 to J3K8 - servo adjustments
SAS 2.5"
Initial Code Releases - ST300MM0006, ST600MM0006, ST900MM0006 to B56H - ST300MM0026, ST600MM0026, ST900MM0026 to B568 - TXA2D20200GA6I, TXA2D20400GA6I, TXA2D20800GA6I, TXA2D21600GA6I to GB76 - see Retain Tip H211424. - HUC101212CSS60 to J2M7 - HUC101212CSS61 to N2M7 - T1200MM0007 to B576 - T1200MM0017 to E574 - ST600MX0001 to BH13 - WD3002BKTG-23E, WD6002BKTG-23E, WD9002BKTG-23E to ZC31 - ST9500431SS to ED12 - ST9146703SS to E536 - ST973352SS to E625 - ST9300553SS to E636 - HUC109030CSS61E, HUC109060CSS61E, HUC109090CSS61E to N2EF - MK3001GRDB, MK6001GRDB, MK9001GRDB to SB35 - drive Que depth fix; see Retain Tip H211667. - HUC109030CSS60, HUC109060CSS60, HUC109090CSS60 to J2EF - HUC109030CSS61E, HUC109060CSS61E, HUC109090CSS61E to N2EF
Other - WD3001BKHG-23D, WD6001BKHG-23D, WD9001BKHG-23D to ZA32 - performance, non-critical fixes and robustness changes.
- ST9600204SS to B54A with maintainance fixes and performance improvements.
- MBD2147RC, MBD2300RC to SB1B - drive Que depth fix; - MBE2073RC, MBE2147RC to SC18 - drive Que depth fix; - MBF2300RC, MBF2600RC to SB2F - drive Que depth fix; - MK1401GRRB, MK3001GRRB to SC2E - drive Que depth fix; see Retain Tip H211667.
- ST9500620SS, ST91000620SS to BD2F - support persistent reservation and maintainance fixes.
SATA 3.5"
Initial Code Release - WD801ABYS-23C0A0, WD1601ABYS-23C0A0 to 06.06H05 - WD5003ABYX-23 to WC38 - added mfg. parameters. - WD2000FYYZ-23UL, WD3000FYYZ-23UL, WD4000FYYZ-23UL to WD36 - ST1000NM0033, ST2000NM0033, ST3000NM0033, ST4000NM0033 to BB58
Other
SATA 2.5"
Initial Code Release - SG9XCS2D50GEIBM to SE6H - WD3000BLHX-23V7BV to YA31 - SSDSC2BA200G3I, SSDSC2BA400G3I, SSDSC2BA800G3I to NA34 - SSDSC2BB120G4I, SSDSC2BB240G4I, SSDSC2BB400G4I, SSDSC2BB800G4I to NB34
Other - ST9250610NS, ST9500620NS, ST91000640NS to BE29 - maintainance updates. - MTFDDAK064MAR-1J1AA, MTFDDAK128MAR-1J1AA, MTFDDAK256MAR-1K1AA, MTFDDAK512MAR-1K1AA to MA57 - added mfg. parameters.
SATA 1.8"
Initial Code Release - SSDSC1NA200G3I, SSDSC1NA400G3I to NA34 - SSDSC1NB080G4I, SSDSC1NB240G4I, SSDSC1NB400G4I to NB34
Other - MTFDDAA064MAR-1J1AB, MTFDDAA128MAR-1J1AB, MTFDDAA256MAR-1K1AB, MTFDDAA512MAR-1K1AB to MA57 - added mfg. parameters.
******************************************* IBM SAS Hard Disk Drive Update Program Version 1.13.01 Critical Release Reference RETAIN H207993
This package includes new updates to drives with product ID strings of:
SAS 3.5"
- HUS723020ALS64 to J3K7 Additions to VPD information used by manufacturing and fixes for overall robustness.
- HUS723030ALS64 to J3K7 Initial Code Release
- ST31000424SS, ST32000444SS to BC2D - ST1000NM0001, ST2000NM0001 to BC49 Fixes for overall robustness.
- ST33000650SS to BC3E Initial Code Release
SAS 2.5"
- MK1401GRRB, MK3001GRRB to SC29 Fixes for overall robustness.
- MBF2300RC, MBF2600RC to SB2C Initial Code Release.
- ST9300605SS, ST9600205SS, ST9900805SS to B55D ST9146853SS, ST9300653SS to B63B ST9500620SS, ST91000640SS to BD2E ST9300505SS, ST9600105SS, ST9900705SS to E557 ST9146753SS to E636 Additions to VPD information used by manufacturing and fixes for overall robustness.
SATA 3.5"
- ST500NM0011, ST2000NM0011, ST1000NM0011 to BB4A ST3500514NS, ST31000524NS, ST32000644NS to BB2C Reliability improvements, Additions to VPD information used by manufacturing
- ST33000650NS to BB3A Initial Code Release
- WD5003ABYX-23 to WC36, WD1003FBYX-23Y7B0 to WB35, WD2003FYYS-23W0B0 to WA35 Reliability improvements, Additions to VPD information used by manufacturing
- HUA723020ALA640 to MK7OA910 Additions to VPD information used by manufacturing.
- HUA723030ALA640 to MKAOA910 Initial Code Release
- HUA722050CLA330, HUA722010CLA330 to A3PH Initial Code Release
SATA 2.5"
- TE22D10100GE8IBM to SR3B Initial Code Release
- MTFDDAK064MAR-1J1AA, MTFDDAK128MAR-1J1AA, MTFDDAK256MAR-1K1AA, MTFDDAK512MAR-1K1AA to MA55 Initial Code Release
- ST9250610NS, ST9500620NS, ST91000640NS to BE28 Fixes for overall robustness.
SATA 1.8"
- MTFDDAA064MAR-1J1AB, MTFDDAA128MAR-1J1AB, MTFDDAA256MAR-1K1AB, MTFDDAA512MAR-1K1AB to MA55 Initial Code Release
- TX21B10100GE8IBM, TX21B10200GE8IBM, TX21B10400GE8IBM to SP3A Initial Code Release
Version 1.12.01 Critical Release Reference RETAIN #H207740
This package includes new updates to drives with product ID strings of:
SAS 3.5"
- VPCA300900EST1, VPCA450900EST1, VPCA600900EST1 to A3C4, Corrects firmware bug that may cause data corruption. For further information, please refer to Retain Tip H207740.
- ST3300657SS, ST3450857SS, ST3600057SS to BA5A VPCA300900EST1, VPCA600900EST1 to A3C2 Additions to VPD information used by manufacturing
- ST3750630SS, ST31000640SS to BC1I ST31000424SS, ST32000444SS to BC2C Mode Page change to address performance issues under certain system configurations
- ST33000650SS to BC3D ST1000NM0001, ST2000NM0001 to BC48 Protection Information Fix - see Retain Tip H206140
- HUS723020ALS64, HUS723030ALS64 to J26C Initial Code Release
SAS 2.5"
- ST9300603SS, ST9146803SS to B53E ST9600204SS to B549 Additions to VPD information used by manufacturing
- ST9300605SS, ST9600205SS, ST9900805SS to B55C ST9146853SS, ST9300653SS to B63A ST9500620SS, ST91000640SS to BD2C ST9300505SS to E555 ST9146753SS to E635 Protection Information Fix - see Retain Tip H206140
- ST9600105SS, ST9900705SS to E555 Inital Code Release
- HUC106030CSS60, HUC106060CSS60 to D3A6 Performance improvements, critical fixes for Protection Information (PI) operation - see Retain Tip H206140
- MK1401GRRB, MK3001GRRB to SC27 Additions to VPD information used by manufacturing
- WD9001BKHG-23D, WD6001BKHG-23D, WD3001BKHG-23D to ZA31 Initial Code Release
SATA 3.5"
- WD2502ABYS-23B7A0 to 02.03B08 WD1602ABYS-23B7A0 to 02.03B07 Critical fix to address premature drive failures.
- ST3500514NS, ST31000524NS, ST32000644NS to BB2A ST33000650NS to BB38 ST1000NM0011, ST2000NM0011, ST500NM0011 to BB47 Fixes a potential, but rare data corruption issue which requires a background reallocation that exceeds the error recovery timer.
- HUA723020ALA640 to MK70A900 HUA723030ALA640 to MKA0A900 Initial Code Release
SATA 2.5"
- ST9160511NS, ST9500530NS to BE1A ST9250610NS, ST9500620NS, ST91000640NS to BE25 Fixes a potential, but rare data corruption issue which requires a background reallocation that exceeds the error recovery timer.
SSD
- TX21B10200GE1IBM, TX21B10400GE1IBM, TX21B10100GE8IBM to PRO6SP36 TE22D10100GE8IBM to PRO6SR36 Initial Code Release
- MTFDDAK128MAR-1J1AA, MTFDDAK256MAR-1K1AA to MA52 Initial Code Release
- MTFDDAA512MAR-1K1AB, MTFDDAK064MAR-1J1AA, MTFDDAK512MAR-1K1AA, MTFDDAA064MAR-1K1AB, MTFDDAA128MAR-1K1AB, MTFDDAA256MAR-1K1AB to MA52 Fixes SMART attribute 190 (Current Temp) which caused warning messages with some versions of Linux
- STEC MACH8 IOPS to 2804 STEC M8PSB2 T4 to SM06 Additions to VPD information used by manufacturing Fixes potential drive failure if power loss occurs during firmware update.
*******************************************
Version 1.11.01 (Non-Critical) - Fixed issue where hard disk drives may not be detected in configurations with multiple Emulex adapters.
See Verion 1.11 for Hard Disk Drive support, firmware levels, and respective change History.
- ST33000650SS to BC3A ST1000NM0001, ST2000NM0001 to BC44 Additions and corrections to VPD information used by manufacturing
SAS 2.5"
- ST9300605SS, ST9600205SS, ST9900805SS to B559 ST9146853SS, ST9300653SS to B637 ST9500620SS, ST91000640SS to BD29 ST9300505SS to E553 SST9146753SS to E633 HUC106030CSS60, HUC106060CSS60 to D390 Additions and corrections to VPD information used by manufacturing
- MK1401GRRB, MK3001GRRB to SC23 Fixes a pottential data corruption bug if there is an unexpected power loss.
SATA 3.5"
- ST3250310NS, ST3500320NS, ST3750330NS, ST31000340NS to BB15 ST3500514NS, ST31000524NS, ST32000644NS to BB29 ST33000650NS to BB36 ST1000NM0011, ST2000NM0011, ST500NM0011 to BB46
SATA SSD
- SG9XCS1B50GMIBM, SG9XCS1F200GEIBM to SA03SB6C SG9XCS2D200GEIBM to SA03SE6C Fix for potential hang during an unexpected power cycle
MTFDDAK128MAR-1JAAB, MTFDDAK256MAR-1JAAB to MA44 Initial Release
=========================================== Version 1.10 (Critical)
This package includes new updates to drives with product ID strings of:
SAS 3.5"
- VPCA300900EST1, VPCA600900EST1 to A3C0 Correction to VPD information used by manufacturing
- ST31000424SS, ST32000444SS to BC2B Fixes to improve robustness from certain read errors due to encroachment
- ST33000650SS to BC37 Fixes to improve overall robustness.
- ST1000NM0001, ST2000NM0001 to BC42 Inital Release
SAS 2.5" (SFF)
- ST9300605SS, ST9600205SS, ST9900805SS to B556 - ST9146853SS, ST9300653SS to B635 Fixes to improve overall robustness.
ST9300505SS to E552 ST9146753SS to E632 Initial Release
- ST9500620SS, ST91000640SS to BD26 Improve general robustness and added support for DPICZ
- HUC106030CSS60, HUC106060CSS60 to D340 Improve general robustness
- MBF2300RC, MBF2600RC to SB28 Improves performance in certain benchmarks
SATA 3.5"
- ST33000650NS to BB34 Fixes to improve overall robustness.
- ST1000NM0011, ST2000NM0011, ST500NM0011 to BB45 Initial Release
- ST3500514NS, ST31000524NS, ST32000644NS to BB29 Fixes for intermittent drive hangs
- ST3250310NS, ST3500320NS, ST3750330NS, ST31000340NS to BB15 Added enhancement for improved robustness
SATA 2.5"
- ST9250610NS, ST9500620NS, ST91000640NS to BE24 Initial Release
- ST9160511NS, ST9500530NS to BE19 Fixes for overall robustness.
SATA 2.5" SSD
- STEC MACH8 IOPS to 2765 STEC M8PSB2 T4 to SM05 Fixes potential drive lock up during cold or warm boots Fixes issues with RHEL 6.x installation
- SG9XCS2D200GEIBM to SA03SE6C Fixes default drive VPD information for manufacturing, the default LED behavior on certain systems and fixes issues with client install thru VMWare 5.x
SATA 1.8" SSD
- STEC M8PSB1 to 0409 STEC M8PSB1 T4 to SM16 Fixes potential drive lock up during cold or warm boots Fixes issues with RHEL 6.x installation
- SG9XCS1B50GMIBM to SA03SB6C SASG9XCS1F200GEIBM to SA03SB6C Fixes potential drive lock up during cold or warm boots and the default LED behavior on certain systems and fixes issues with client install thru VMWare 5.x
=========================================== Version 1.09 (Critical)
This package includes new updates to drives with product ID strings of:
SAS 3.5"
- ST31000424SS, ST32000444SS to BC28 Added enhancement for improved RV robustness
- MBE2073RC, MBE2147RC to SC17 - MBA3073RC, MBA3147RC, MBA3300RC to SA0A Added VPD changes for manufacturing
SAS 2.5" (SFF)
- ST9300603SS, ST9146803SS to B53C ST9600204SS to B548 SST973452SS, ST9146852SS to B62C CBRCA146C3ETS0, CBRCA300C3ETS0 to C610 Added fixes for overall drive robustness
- MBD2147RC, MBD2300RC to SB1A Added VPD changes for manufacturing Addresses issues seen with DSA HDD Diagnostic test.
- MBF2300RC, MBF2600RC to SB25 Addresses issues seen with DSA HDD Diagnostic test.
- ST9500620SS, ST91000640SS to BD22 HUC106030CSS60, HUC106060CSS60 to D2F8 Inital Release
SATA 3.5"
- WD2502ABYS-23B7A0 , WD1602ABYS-23B7A0 to 02.03B07 Addresses firmware issues that may cause a drive to be marked defunct prematurely under certain application workloads.
- ST3250310NS, ST3500320NS, ST3750330NS, ST31000340NS to BB14 ST3500514NS, ST31000524NS, ST32000644NS to BB28 Added enhancement for improved robustness
- WD5003ABYX-23 to WC31 Initial Release
SATA 2.5"
- WD3000BLFS-23YBU0 to 04.04V10 (Critical) Addresses firmware issues that may cause a drive to be marked defunct prematurely under certain application workloads.
- ST9250610NS, ST9500620NS, ST91000640NS to BE21 Initial Release
SATA 2.5" SSD
- STEC MAC8 IOPS to 2732 STEC M8PSB2 T4 to SM04 Addresses an issue installing RHEL 6.0 onto this drive.
SATA 1.8" SSD
- SG9XCS1B50GMIBM, SG9XCS1F200GEIBM to SA03SB63 Addresses rare issue where the drive may not being seen on power up.
- STEC M8PSB1 to 0408 STEC M8PSB1 T4 to SM15 Addresses an issue installing RHEL 6.0 onto this drive.
- ST373455SS, ST3146855SS, ST3300655SS to BA2D - ST373355SS, ST3146755SS, ST3300555SS to BA38 - ST3146356SS, ST3300656SS, ST3450856SS to BA4C - ST3300657SS, ST3450757SS, ST3600057SS to BA58 - ST3750630SS, ST31000640SS to BC1G - ST31000424SS, ST32000444SS to BC26 (All Above Critical) These codes addresses a rare potential for data corruption. For this issue to occur, the drive write cache must be enabled. For further information, please refer to retain tip H197382.
- MBA3073RC, MBA3147RC, MBA3300RC to SA08 This code corrects a firmware bug that may cause the drive to not come ready on a cold boot.
SAS 2.5" (SFF)
- ST973402SS, ST9146802SS to B52B - ST936751SS, ST973451SS to B617 - ST9600204SS to B546 - ST973452SS, ST9146852SS to B629 - ST9300503SS to E536 - ST9146752SS to E625 - ST9500430SS to BD14 (All Above Critical) These codes addresses a rare potential for data corruption. For this issue to occur, the drive write cache must be enabled. For further information, please refer to retain tip H197382.
SATA 3.5"
- ST3500514NS, ST31000524NS, ST32000644NS to BB26
- WD2003FYYS-23W0B0 to WA32 - WDC WD1003FBYX-23Y7B0 to WB31 Initial release
SATA 2.5" SSD
- STEC MACH8 IOPS to 2582 (Critical) Corrects firmware bug that may cause data corruption. For further information, please refer to retain tip H197650.
SATA 1.8" SSD
- STEC M8PSB1 to 0405 (Critical) Corrects firmware bug that may cause data corruption. For further information, please refer to retain tip H197650.
This package includes new updates to drives with product ID strings of:
SAS 3.5"
- VPCA300900EST1, VPCA450900EST, VPCA600900EST1 to A3B8 Initial Release
- VPBPA300C3EST1 to A529 Initial Release
- ST3300657SS, ST3450757SS, ST3600057SS to BA56 (Critical) Performance improvements under certain workloads. Corrects a firmware bug that may cause the drive to not come ready on a warm or cold reboot.
- ST31000424SS, ST32000444SS to BC21 Initial Release
SAS 2.5" (SFF)
- ST9300603SS, ST9146803SS to B53A (Critical) Performance improvements under certain workloads. Corrects a firmware bug that may cause the drive to not come ready on a warm or cold reboot.
- ST9600204SS to B544 (Critical) Corrects a firmware bug that may cause the drive to not come ready on a warm or cold reboot.
- ST973452SS, ST9146852SS to B626 Performance improvements under certain workloads.
- ST9500430SS to BD13 Performance improvements under certain workloads
- ST9300503SS to E534 and ST9146752SS to E623 Performance improvements under certain workloads.
- MBD2147RC, MBD2300RC to SB19 (Critical) Retain Tip H196899 MBE2073RC, MBE2147RC to SC16 (Critical) Retain Tip H196899 Corrects a firmware bug that erroneously reported medium errors which may cause the drive to report PFA alerts and in some cases be marked offline
SATA 3.5"
- WDC WD2502ABYS-23B7A0, WD2502ABYS-23B7A0, WD802ABYS-23B7A0, WD1602ABYS-23B7A0 to 02.03B05 (Critical) Corrects a firmware bug that may cause the drive to not come ready on a warm or cold reboot.
- ST3500514NS, ST31000524NS, ST32000544NS to BB26 (Critical) This code addresses a rare potential for data corruption. For this issue to occur, the drive write cache must be enabled. For further information, please refer to retain tip H197382.
- ST3250310NS, ST3500320NS, ST3750330NS, ST31000340NS to BB13 (Critical) This code addresses a rare potential for data corruption. For this issue to occur, the drive write cache must be enabled. For further information, please refer to retain tip H197382.
- HUA722020ALA330 to JKAOA3GA HUA722050CLA330 to JP2OA3GB HUA722010CLA330 to JP4OA3GB Initial Release
SATA 2.5"
- WD3000BLFS-23YBU0 to 04.04V09 (Critical) This code corrects an additional issue where the drive may be marked defunct.
- ST9160511NS, ST9500530NS to BE18 (Critical) This code addresses a rare potential for data corruption. For this issue to occur, the drive write cache must be enabled. For further information, please refer to retain tip H197382. Also improves performance under certain workloads.
SATA 2.5" SSD
- STEC MACH8 IOPS to 2366 (critical) Corrects firmware bug that may cause degraded performance and in some cases the drive may not come ready after a warm or old boot.
SATA 1.8" SSD
- STEC M8PSB1 to 0404 Turns the default for write cache off
*******************************************
Version 1.06 (Critical)
Added support for the following controllers:
- IBM ServeRAID BR10il SAS controller v2 (49Y4731) - IBM ServeRAID M1015 SAS controller (46M0831) - IBM ServeRAID M5015 SAS controller (46M0829) - IBM ServeRAID M5014 SAS controller (46M0916)
The following is a list of drives and the firmware that they will be checked for and updated to as necessary.
This package includes new updates to drives with product ID strings of:
SAS 3.5" --------------
- ST373455SS, ST3146855SS, ST3300655SS to BA2A ST373355SS, ST3146755SS, ST3300555SS to BA36 (Critical) This code addresses a rare potential for data corruption. For this issue to occur, the drive write cache must be enabled. When a write is issued while the drive write cache is enabled and a read-verify is performed immediately afterwards, undetected data corruption can occur. For further information, please refer to retain tip H194632.
- ST3750630SS, ST31000640SS to BC1E ST3146356SS, ST3300656SS, ST3450856SS to BA4A This code address an issue where the drive may report an erroneous hardware error to the controller.
- MBA3073RC, MBA3147RC, MBA3300RC to SA07 This code improves sequential write performance under certain workloads when write cache is turned on.
- ST3300657SS, ST3450757SS, ST3600057SS to BA52 NOTE: This is the first code release to be included in the hard drive update package.
SAS 2.5" (SFF)
- ST973402SS, ST9146802SS to B52A ST936751SS, ST973451SS to B616 (Critical) These codes addresses a rare potential for data corruption. For this issue to occur, the drive write cache must be enabled. When a write is issued while the drive write cache is enabled and a read-verify is performed immediately afterwards, undetected data corruption can occur. For further information, please refer to retain tip H194632.
- MBB2073RC, MBB2147RC to SB07 MBD2147RC, MBD2300RC to SB17 MBE2073RC, MBE2147RC to SC14 CBRCA146C3ETS0, CBRCA300C3ETS0 to C370 This code improves sequential write performance under certain workloads when write cache is turned on.
- ST9500430SS to BD11 This is the first code release to be included in the hard drive update package.
SATA 3.5"
- WD2003FYYS-23T8B0 to 01.00D04 This is the first code releases to be included in the hard drive update package.
SATA 2.5"
- WD3000BLFS-23YBU0 to 04.04V08 (Critical) This code corrects an issue where the drive may generate a false PFA alert. It also corrects an issue where the drive may be marked defunct
- ST9160511NS, ST9500530NS to BE16 This is the first code releases to be included in the hard drive update package.
*******************************************
Version 1.05
The following is a list of drives and the firmware that they will be checked for and updated to as necessary.
This package includes new updates to drives with product ID strings of:
SAS 2.5" (SFF) -------------- ST9xxxx51SS to B616 ST9xxxx02SS to B52A - This code improves the robustness of write cache operations.
ST9xxxx52SS to B624 ST9xxxx03SS to B536 - This code improves the robustness of write cache operations and sequential write performance when write cache is enabled. NOTE: This is the first code for the ST9xxxx52SS and ST9xxxx02SS drives to be included in a hard drive update package. It is an update from the code that is shipped with the drive.
MBD2xxxRC to SB14 - Initial release
SAS 3.5" -------- ST3xxxxx6SS to BA49 ST3750630SS to BC1D - This code improves the robustness of write cache operations.
SATA 2.5" --------- WD3000xxxxx to 04.04V05 - Adjusted PHY setting for better signal quality margin.
SATA 2.5" SSD -------------- STEC MACH8 IOPS to 2269 GBRL0xxxxx to 4.17 GBRLBxxxxx to 4.26 - The new firmware will correct a rare data error condition in the drives where invalid data may be passed to the system without any error condition flagged.
Due to the severity of this potential issue, IBM strongly recommends applying this firmware as soon as possible.
For further information, please refer to retain tip H195663.
NOTE: This is the first code for the GBRLBxxxxx drives to be included in a hard drive update package. It is an update from the code that is shipped with the drive.
*******************************************
Version 1.04
The following is a list of drives and the firmware that they will be checked for and updated as necessary.
This package includes new updates to drives with product ID strings of:
SAS 2.5" (SFF) -------------- CBRBAxxxxxx to C49B - Modified VPD for JSxx Blades
MBBxxxxxx to SB05 - Fixed a performance issue when synchronizing or rebuilding an array when used in a LSI 1064 based SAS controller.
MBC2073RC to SC04 - Fixed a performance issue when synchronizing or rebuilding an array when used in a LSI 1064 based SAS controller.
SAS 3.5" -------- MBAxxxxxx to SA06 - Fixed a performance issue when synchronizing or rebuilding an array when used in a LSI 1064 based SAS controller.
ST3xxxxx6SS to BA48 - This code addresses a rare potential for data corruption. For this issue to occur, the drive write cache must be enabled. When a write is issued while the drive write cache is enabled and a read-verify is performed immediately afterwards, undetected data corruption can occur. For further information, please refer to retain tip H194632.
ST3750630SS to BC1A - This code addresses a rare potential for data corruption. For this issue to occur, the drive write cache must be enabled. When a write is issued while the drive write cache is enabled and a read-verify is performed immediately afterwards, undetected data corruption can occur. For further information, please refer to retain tip H194632. - Fixes a hang condition during failover operation on a BladeCenter-S chassis with an RSSM controller.
BBAxxxxxx to BH0K - Fixed an issue where a drive may prematurely report a PFA trip.
GNAxxxxxx to BH0J - Fixed an issue where a drive may prematurely report a PFA trip.
SATA 3.5" --------- ST31000340NS, ST370330NS, ST3250310NS, ST3500320NS to BB12 - This code addresses a rare potential for data corruption. For this issue to occur, the drive write cache must be enabled. When a write is issued while the drive write cache is enabled and a read-verify is performed immediately afterwards, undetected data corruption can occur. For further information, please refer to retain tip H194632. - This code addresses a rare potential for data loss. After a power cycle, the drive will no longer be available and becomes unresponsive. Data will become inaccessible due to the drive not responding. For further information, please refer to retain tip H194623.
WDC WD2502ABYSxxxxx to 02.03B04 - Fixed incorrect VPD data.
SATA 2.5" --------- WD3000xxxxx to 04.04V04 - Fixed a Critical issue - IBM recommends a backup of the data on the drive before attempting to update the firmware. This is a fix for an issue where data required for spin up of the drive may be overwritten, rendering the drive inoperable on a subsequent warm or cold system reboot. - Fixed a bug with an internal timer that may cause a drive to go offline when used in a non-RAID environment.
SATA 2.5" SSD ------------- STEC MACH8 IOPS to 2103 - Initial Release
*******************************************
Version 1.03
Added the capability to update SAS and SATA drives online under Windows or Linux. This capability is only supported if the drives are attached to one of the following SAS adapters: - IBM ServeRAID MR10k SAS Controller - IBM ServeRAID MR10i SAS Controller - IBM ServeRAID MR10M SAS Controller - IBM ServeRAID MR10il SAS Controller - IBM ServeRAID MR10is SAS Controller - MegaRAID 8480 SAS Controller - IBM ServeRAID BR10i SAS Controller - IBM ServeRAID BR10il SAS/SATA Controller - IBM SAS HBA - IBM SAS Expansion Card (CFFv) for IBM BladeCenter - IBM SAS Connectivity Card (CFFv) for IBM BladeCenter - Onboard LSI 1064 SAS controller (2MB only) - Onboard LSI 1068 SAS controller - Onboard LSI 1078 SAS controller
This package includes new updates to drives with product ID strings of:
SAS 2.5" (SFF) -------------- ST9146802SS, ST973402SS to B529 - Added support for JS2x Blades in a BladeCenter-S chassis. - Picked up the latest network roll of firmware fixes to address some unexpected system hangs.
ST936751SS, ST973451SS to B615 - Added support for JS2x Blades in a BladeCenter-S chassis. - Picked up the latest network roll of firmware fixes to address some unexpected system hangs.
CBRBAxxxxxx to C495 - Initial release
MBBxxxxxx to SB04 - Initial release
MBC2073RC to SC03 - Initial release
SAS 3.5" -------- VPBAxxxxxx to A496 - Added support for JS2x Blades in a BladeCenter-S chassis.
ST3146855SS, ST3300655SS, ST373455SS to BA29 - Added support for JS2x Blades in a BladeCenter-S chassis. - Picked up the latest network roll of firmware fixes to address some unexpected system hangs.
ST3450856SS to BA47 - IBM was notified by our vendor that there is a defect in a level of firmware used in the IBM 450GB 15K SAS 3.5" HS HDD (PN 41Y8454) in option 42D0519, which under certain conditions may lead to data being written or read back incorrectly on the drive. IBM has worked closely with the vendor to identify the problem and developed a firmware fix to resolve the problem. Customers should upgrade to firmware level BA47.
MBAxxxxxx to SA05 - Initial release
ST3750630SS to BC17 - Initial release
SATA 3.5" --------- ST3250620NS, ST3500630NS, ST3750640NS to 3.AEV - Initial release
ST3250621NS, ST3500631NS, ST3750641NS to 4AEV - Initial release
ST31000340NS, ST3750330NS, ST3250310NS, ST3500320NS to BB10 - Initial release
HUA721050KLA330, HUA721075KLA330, HUA721010KLA330, to AB4A - Initial Release
SATA 2.5" SSD ------------- GBRL001xxx, GBRL0031xxx to 4.14 - Corrects intermittent hangs during operations.
**************************************************************** | | | | | IBM Online Tape Drive/Optical Update Program | | Revision: 1.11.00.1075 Build Date: 6.23.11 | | | | (C) Copyright International Business Machines Corporation | | 2000-2011 . All rights reserved. | | | | US Government Users Restricted Rights -- Use, duplication | | or disclosure restricted by GSA ADP Schedule Contract with | | IBM Corp. | | | | Note: Before using this information and the product it | | supports, read the general information under "NOTICES AND | | TRADEMARKS" in this document. | | | | Updated: 6/23/2011 | | | ****************************************************************
CONTENTS:
Change History
ver 1.1
Increased the tape tension during drive cleaning from 4g to 7g, which improves the cleaning effectiveness significantly.
ver 1.0
This firmware will change the firmware of your DDS tape drive to the latest available. ibm_fw_tape_dds-1_1_linux_32-64_chg
uEFI Flash Update Version 1.60 (BuildID VVE136A) Change History
Version 1.70 - BuildID: VVE142A ------------------------------------------------- Problem(s) Fixed: - Fixed the system boot failure due to low PCI memory-mapped resource for a VGA device - Incorporated Intel Microcode Update (MCU) MED 306E4_00000427 to address Intel Erratum Enhancements: - Enhanced memory SPD logging for Intel E5-2600 v2 processors - Enhanced error logging for memory-mirroring mode configurations - Support Memory Reference Code Release version 2.0.0.3 - Support AES enable/disable by ASU - Enhanced IBM boot manager - Enhanced TPM Physical Presence lock algorithm Limitations: - When flashing UEFI from version 1.30 or later to a version earlier than 1.30, a "Boot Configuration Error" message will be logged into the UEFI error log. This error does has no impact on the system configuration or operation. No errors are logged when flashing from an earlier version to version 1.30 or newer. Dependencies: - The IMM firmware must be at BUILDID: 1AOO58N Version: 4.30 (ibm_fw_imm2_1aoo58n-4.30_anyos_noarch) or higher prior to installing UEFI version 1.70. If the IMM level is lower, the UEFI update module will be rejected as invalid because of additional security features features implemented in this release.
Version 1.60 - BuildID: VVE136A ------------------------------------------------- Problem(s) Fixed: - Fix Can not boot up from IMM Remote Mount with USB key. - Fix CPU frequence lockdown when UEFI recalibrates the power levels during first cold boot - Fix that LR-DIMM 1333Mhz 1.35V memory speed is incorrect at Balanced mode
Enhancements: - Prevent the system unexpected shutdown with HCDIMM - Variable store self-healing
Limitations: Dependencies:
Version 1.51 - BuildID: VVE134T ------------------------------------------------- Problem(s) Fixed: - System doesn't boot to HII after Pressing 'C' with missing configuration.
Enhancements: - IVB Support. - Prevent the system unexpected power off with sensor planar voltage fault
Limitations: Dependencies:
Version 1.50 - BuildID: VVE134S ------------------------------------------------- Problem(s) Fixed: - Reboot to UEFI setup using ASU or Windows 2012 - Enable help string scroll when the help text cannot show all at current page. - Add notification and recovery option when UEFI detects GPT corruption during POST - Implement LAN Fail-Over function Enhancements: - IVB Support. Limitations: Dependencies:
Version 1.40 - BuildID: VVE128B ------------------------------------------------- Problem(s) Fixed: - IB Card show "Standby Power Enable/Disbale item" in uEFI setup menu - Can Not enter F1 setup menu after POST failure occur. - Correct the PCIE link control of Active-state power Management(ASPM) setting to result the PCI/NMI problem
Enhancements: - Multiple PCIe adapter BARs - Configurable MMIO base - Support Firmware first feature - Add informational messages when existing UEFI F1 setup menu - Add OEM SPD feature Limitations: Dependencies:
Version 1.30 - BuildID: VVE124A ------------------------------------------------- Problem(s) Fixed: - iSCSI Out of Band Configuration Fails. - Failed to change the value of some memory settings with ASU(ASUT78C). - MBE WHEA-log can't match ECC Uncorrectable event. - System administrator password is set but system still can get fully access right in F1 uEFI without asking password if press and then press . - Update uEFI README file. - IMM lost connection with shared NIC on Intel mezz card. - Onboard NIC 4 doesn't work when boot Linux OS with paramet. - System hang after memory multibit error occurred and then system reboot. - System could be hang if Intel Network adapter is installed (Dallas). - TPM setting would not be applied in ESC+SAVE issue . - The Pre-Boot value cannot set MUX switch to BMC by uEFI SETUP menu. - Kingston manufactory ID will shown as "Unknown" in SMBIOS type 17. - Fixed TCG TPM Integration manual test failed in Windows 2012. - System hang at IBM LOGO with Broadcom Dual Runner card. - Cause [W.3938002]Boot Config Error. - Disable CPU C-State and Phase Shedding to prevent Voltage Regulator EOS issue. - UEFI setting on F1 menu doesn't sync with ASU setting when boot mode=legacy only.
Enhancements: - SMBIOS type17s support 2133 data rate for dimm maximum speed. - Remove some unuseful code due to IMM changed flow when uefi primary bank integrity check failure. - Enabled DCA item in processors menu of uEFI SETUP. - Improve clock timing for Netlist 16GB HCDIMM. - Add a workaround to patch an yellow mark(AHCI) shown on Windows 2012. - Improve FoD (Feature On Demand) by Transition Table update . - Improve thermal limitation in SSD adapter (LSI High IOP, QLogic ). - Improve behavior of PCI-X error handling.
Limitations: Dependencies:
Version 1.20 - BuildID: VVE120C ------------------------------------------------- Problem(s) Fixed: - Invalid slot usage state showed on RENAI Riser card. - Incorrect slot error event on JOJO Riser. - Fail to return to Boot menu if boot fail. - Further updates to the fatal error handler to report QPI errors during runtime. - iSCSI Attempt will disapper when system reboot several times. - F6 function key is malfunction. - Remove unnecessary information from ReadMe file. - Fails to report logging limit errors on spared DIMM. - FAN speed is pull up if TXT enabled in uEFI. - Fail on Windows 2012 TPM WHQL validation.
Enhancements: - Improve 2DPC@1333MHz detection algorithm. - Improve CPU detect algorithm. - Support 4GB PCI inventory access. - Support UDIMM 2DPC@1333MHz run on 1.35V by automatic. - Remove unnecessary warm reset to improve uEFI boot time.
Limitations: Dependencies:
Version 1.11 - BuildID: VVE116C ------------------------------------------------- Problem(s) Fixed: - Fail to install VMWare 5.0 if Intel TXT function is enabled.
Enhancements: Limitations: Dependencies:
Version 1.10 - BuildID: VVE116A ------------------------------------------------- Problem(s) Fixed: - Fixed issue to allow PXE/iSCSI to be configured out-of-band - Processor speed is incorrect when system is idle w/ E5-2637 M1. - Serial Console Redirection function can not work if SP Redirection is Disabled. - No Screen output by Serial Over Lan connection. - Fix Intel E5-2637 speed is incorrect. - DIMM slot 13-24 can NOT indicate which memory was falut. - Fix SMBios Type 4 External Clock information incorrect. - Fixed issue that caused the ASU tool to occasionally fail to update the Processors.CoresinCPUPackage value
Enhancements: - Improve PCIe error reporting. - Improve Fatal Error Handle. - Improve Legacy PXE function. - Remove Intel 130W CPU limitation. - Improve PCIe error reporting. - Support Heping riser card - Improve ME Update mechanism - Improve ACPI: C-States - Added support for using Features On Demand with Optimized Boot enabled - Updated thermal threshold values for DIMMs - Reduce boot time (reduce unnessary reset in POST).
QLogic 10 GbE Converged Network Adapter MultiFlash Update for System x IBM P3P Firmware Change History QLogic Corporation. All rights reserved.
Package Version 2.20.07.e
Release Version: 2.20.07
Table of Contents 1. Version 2. Changes 3. Limitations 4. Known Issues 5. Additional Information 6. Trademarks 7. Notices 8. Contacting Support
1. Version
The files contained in this Flash image package are zipped into a file that will expand to provide the following versions for the 3200/8200 Series Adapters.
* Flash Image Version 2.20.07
P3P22007.BIN contains: ---------------------- * NIC PXE (3200/8200 Series) PXE 3.0 version 2.0.2.37 PXE EFi version 2.6.14 * FCoE BIOS (8200 Series only) BIOS 3.0 version 3.25 beta 1 uEFI version 6.08 * iSCSI BIOS (8200 Series only) BIOS 3.0 version 2.19 uEFI version 2.04.11 * Firmware - v4.16.150 * Pegtune - v4.16.32 * Bootloader - v4.16.05 * CRBinit - v4.12.07
Hardware Support Standard Servers with PCIe 1.1 and 2.0 x8
3. Limitations
None
Industry Standards Compliance N/A
4. Known Issues
5. Additional Information None
6. Trademarks Accelera, Accelerating Cluster Performance, InfiniCon Systems, InfiniNIC, InfiniPath, InfiniView, QLA, QLogic, the QLogic logo, ReadyPath, SANdoctor, SANsurfer, and SilverStorm are registered trademarks of QLogic Corporation. All other brand and product names are trademarks or registered trademarks of their respective owners.
7. Notices Information furnished in this document is believed to be accurate and reliable. However, QLogic Corporation assumes no responsibility for its use, nor for any infringements of patents or other rights of third parties which may result from its use. QLogic Corporation reserves the right to change product specifications at any time without notice. Applications described in this document for any of these products are only for illustrative purposes. QLogic Corporation makes no representation nor warranty that such applications are suitable for the specified use without further testing or modification. QLogic Corporation assumes no responsibility for any errors that may appear in this document.
8. Contacting Support Please feel free to contact your QLogic Technical Support at any phase of integration for assistance. QLogic Technical Support can be reached at:
Gary Stift gary.stift@qlogic.com
(c) Copyright 2011. All rights reserved worldwide. QLogic, the QLogic logo, and the Powered by QLogic logo are registered trademarks of QLogic Corporation. All other brand and product names are trademarks or registered trademarks of their respective owners.
qlgc_fw_cna_sysx-2_20_07_e_linux_32-64_chg
IBM 7383 (IBM system x 3500 M4) uEFI Flash Update Version 1.60 (BuildID Y5E136AUS) Change History
Version 1.70 - BuildID: Y5E140A ------------------------------------------------- Problem(s) Fixed: - Incorporated Intel Microcode Update (MCU) MED 306E4_00000427 to address Intel Erratum Enhancements: - Enhanced memory SPD logging for Intel E5-2600 v2 processors - Enhanced error logging for memory-mirroring mode configurations - Support Memory Reference Code Release version 2.0.0.3 - Support AES enable/disable by ASU - Enhanced IBM boot manager - Enhanced TPM Physical Presence lock algorithm Limitations: - When flashing UEFI from version 1.30 or later to a version earlier than 1.30, a "Boot Configuration Error" message will be logged into the UEFI error log. This error does has no impact on the system configuration or operation. No errors are logged when flashing from an earlier version to version 1.30 or newer. Dependencies: - The IMM firmware must be at BUILDID: 1AOO58N Version: 4.30 (ibm_fw_imm2_1aoo58n-4.30_anyos_noarch) or higher prior to installing UEFI version 1.70. If the IMM level is lower, the UEFI update module will be rejected as invalid because of additional security features features implemented in this release.
Version 1.60 - BuildID: Y5E136A ------------------------------------------------- Problem(s) Fixed: 1. Can not boot up from IMM Remote Mount with USB key. 2. Fixed the Incorrect Uniphy Recipe programmed for S-step IVX Enhancements: 1. Variable store self-healing. Limitations: 1. When flashing UEFI from version 1.30 or later than 1.20 to version earlier than 1.20, a "Boot Configuration Error" message will be logged into the UEFI error log. This error does has no impact on the system configuration or operation. No errors are logged when flashing from an earlier version to version 1.30 or newer. Dependencies: 1. The IMM firmware must be at BUILDID: 1AOO50D Version: 3.65 (ibm_fw_imm2_1aoo50d-3.65_anyos_noarch) or higher prior to installing UEFI version 1.60. If the IMM level is lower, the UEFI update module will be rejected as invalid because of additional security features implemented in this release.
Version 1.51 - BuildID: Y5E134G ------------------------------------------------- Problem(s) Fixed: - Fixed system unexpected power off with sensor planar voltage fault - Fixed Performance drop issue
Enhancements: - The 2DPC@1866 especially for 16G DIMM formal code Limitations: Dependencies:
Version 1.50 - BuildID: Y5E134F ------------------------------------------------- Problem(s) Fixed: - Corrected IPv6 reboot problems - Corrected 64bit resouce allocation problems - Fix CPU frequence lockdown when UEFI recalibrates the power levels during first cold boot Enhancements: - Add support for Intel Xeon processor E5-2600 v2 product family - Add notification when UEFI detects GPT corruption during POST - Add support to configure the "Next Boot to F1 setup" function out of band - Add long text support in F1 setup help string Limitations: Dependencies:
Version 1.40 - BuildID: Y5E128D ------------------------------------------------- Problem(s) Fixed: - Incorporated Microcode Update (MCU) M6D206D7_00000710 to address Intel Erratum BT248 for System Resets with 32-bit (PAE Enabled) Guest OS and VT FlexPriority enabled. For more information, refer to IBM RETAIN Tip H21370. Enhancements: Limitations: Dependencies:
Version 1.40 - BuildID: Y5E128B ------------------------------------------------- Problem(s) Fixed:
- Fixed that can not enter F1 setup menu after 3x POST failure occurred. - Correct the PCIE link control of Active-State Power Management(ASPM) setting to result the PCI/NMI problem - Fix that UA-101 audio device hang at legacy mode Enhancements: - Multiple PCIe adapter BARs - Configurable MMIO base - Support Firmware first feature - Add informational messages when existing UEFI F1 setup menu - Add OEM SPD feature - Improved handling of memory in high stress application/usage Limitations: Dependencies:
Version 1.30 - BuildID: Y5E124B ------------------------------------------------- Problem(s) Fixed: - UEFI option 43 fails to work - Disable phase shedding and Default to disable CPU C-states - ITP can't trigger CPU2 IERR - MBE WHEA-log can't match ECC Uncorrectable event Enhancements: - Change UDIMM 2DPC@1333Mhz 1.35V algorithm to meet performance specification requirement - Support ROM Recovery feature (Auto Promotion under Backup Bank Management Method) Limitations: Dependencies:
Version 1.20 - BuildID: Y5E120D ------------------------------------------------- Problem(s) Fixed: - Sevaral uEFI OS boot failed with F12 boot menu HDD0. - Console Switch 1754A2X with KB & Mouse are not responding in EFI Web BIOS - Fail to return to Boot menu if boot fail. - IMM menu location is changed. - F6 function key is malfunction. - FAN speed is pull up if TXT enabled in uEFI. Enhancements: - Support the Trusted Computing Group's Memory Overwrite Request function. - Improve fatal error handler to report QPI errors during runtime. - Support FastSetup feature - Enable DRAM phase shedding - Support 4GB PCI inventory access. - Support UDIMM 2DPC@1333MHz run on 1.35V by automatic. - Improve messages while booting up. - Enable Phase Shedding to improve memory performance. - Improve PCIe Slot# for WidgetGetDeviceLocation procedure - Remove unnecessary warm reset to improve uEFI boot time.
Limitations: Dependencies:
Version 1.10 - BuildID: Y5E116A ------------------------------------------------- Problem(s) Fixed: - Fixed E5-2690 cannot run frequency at 2.9GHz(only 2.8GHz) when turn off Turbo mode. - Fixed fnstruction for TPM enablement has type error. - Fixed CPU can not enter deep C status with uEFI 11I under RHEL5.7 64 - Fixed failed to boot from CDDVD ROM with uEFI OS - Fixed iSCSI ISID mismatch under uEFI BIOS Settings. - Fixed TCG TPM Integration Test (Manual) random failed under WIN2K8 R2 SP1 with uEFI_11L - Fixed QPI link speed and Turbo mode show incorrect with M1 stepping CPU. - Fixed the format of System Event Log is uncorrected - Fixed Legacy Thunk Support is malfunctional - Fixed DIMM slot 13-24 can NOT indicate which memory was falut when trigger MBE on Mirror mode by bugged DIMM - Fixed ASUT74H can't find any iscsi item - Fixed Fail to set some of PXE items with ASU76h - Fixed Can not boot into WinPE in RAID HDD on Crossfield - Fixed Personality can not be switched in OCM tool no matter FOD is imported - Fixed fail to set some of PXE items with ASU76h - Fixed Processor speed is incorrect when system is idle - Fixed VLAN ID can be configured to ID 0 - Fixed Processor speed is incorrect when system is idle w/ E5-2637 M1 - Fixed Console redirection can not work normally with com2com. - Fixed No screen output with SOL connection Enhancements: - Added Legacy Thunk support setup item - Change Operating Mode from Custom Mode to Efficiency - Favor Performance - Added DriverCodeDisplay error code on screen function - Improve PCIe error reporting. - Improve Fatal Error Handle. - Improve Legacy PXE function. - Remove Intel 130W CPU limitation. - Improve PCIe error reporting. - Support Heping riser card - Improve ME Update mechanism - Improve ACPI: C-States - Added support for using Features On Demand with Optimized Boot enabled - Updated thermal threshold values for DIMMs - Reduce boot time (reduce unnessary reset in POST). Limitations: Dependencies:
**************************************************************** | | | Tape LTO firmware update | | | | | | (C) Copyright International Business Machines Corporation | | 2000-2012 . All rights reserved. | | | | US Government Users Restricted Rights -- Use, duplication | | or disclosure restricted by GSA ADP Schedule Contract with | | IBM Corp. | | | | Note: Before using this information and the product it | | supports, read the general information under "NOTICES AND | | TRADEMARKS" in this document. | | | | Updated: 1/29/2013 | | | ****************************************************************
Change History
ver 1.7 To update the LTO 3 v2 firmware to C7RD To update the LTO 4 v1 firmware to C7Q5 To update the LTO 4 v2 firmware to C7RD To update the LTO 5 v1/v2 firmware to C7RD
ver 1.6_01 To update the initilialization file for reflash tool and the new version of LTO Gen 4 v1 firmware into BBH5.
ver 1.6_00 updated firmware for LTO42 to BBNF updated firmware for LTO32 to BBNF ver 1.5_00 updated firmware for LTO 3 to BBNF updated firmware for LTO 4 to BBNF updated firmware for LTO 5 to BBNM
ver 1.4_04
updated firmware for LTO 5 to BBNB
ver 1.4_01
updated firmware for LTO 4 to A23E
ver 1.4_00
updated firmware for LTO 5 to A6S1 updated firmware for LTO 4 to A231
ver 1.3_02
update .txt and .chg files
ver 1.3_01
corrected XML / TML file names for new firmware (A4Q1 -> A5M1)
ver 1.3_00
updated firmware for LTO 5 to A5M1
ver 1.2
updated firmware for LTO 5 to A4Q1
ver 1.1
updated XML / TML to add new systems
ver 1.0
This firmware will change the firmware of your LTO tape drive to the latest available, unless it is already at the latest level.
- IBM HH LTO5 SAS (49Y9898 - 3628L5X - 3628N5X) @ A2C1 - IBM HH LTO1 SCSI (24P2396 - Newton) @ N2CG - IBM HH LTO1 SCSI (24P2396 - Pompy) @ P63I - IBM HH LTO2 SCSI (39M5658) @ 0468 - IBM HH LTO3 SAS (43W8478) @ 93G1 - IBM HH LTO4 SAS (44E8895) @ 93Y1 - IBM FH LTO1 SCSI (00N8016) @ 59C0 - IBM FH LTO2 SCSI (59P6744) @ 8571 - IBM FH LTO3 SCSI (39M5657) @ 87G0 ibm_fw_tape_lto-1_7_linux_32-64_chg
============================ R E L E A S E N O T E S ============================
Broadcom Linux bnx2 and 10GigE Virtual Bus Drivers(VBD)
Version 2.2.4g 01/09/2014 Copyright (c) 2004 - 2014 IBM Corporation All rights reserved
NOTE: These driver release information is the original from the vendor. They include multiple driver change histories for multiple Linux Operating Systems. Some drivers may or may not pertain to all Linux Operating Systems but are part of this file for references.
Release Notes Broadcom bnx2 Linux Driver Version 2.2.5f 02/20/2014 Broadcom cnic Linux Driver Version 2.5.18d 02/05/2014
Broadcom Corporation 5300 California Avenue, Irvine, CA 92617
Copyright (c) 2004 - 2014 Broadcom Corporation All rights reserved
package 2.710.10 (Feb 25, 2013) =============================== Fixes ----- 1. Problem: Package does not compile on newer kernels
Cause: kernel compatibility issue.
Change: Added new CFLAGS from bnx2x Makefile for bnx2x_compat.h.
Impact: Newer distributions such as RHEL7.
bnx2 2.2.5f (Feb 20, 2014) =========================== Fixes ----- 1. Problem: (CQ72407) "shutdown -h now" causes NMI on 5709 in some scenarios.
Cause: If the function has not been brought up (ifup), system shutdown will cause a WAIT3 and D3 sequence without prior chip reset. This may cause the firmware to power down the PHY which will cause the function to become unresponsive to MMIO reads. The CPU will timeout and NMI as a result.
Change: Added some logic to tell firmware to skip the PHY power down.
Impact: 5709 only. Only ifdown and system shutdown sequences are affected. No run-time impact.
bnx2 2.2.5e (Feb 05, 2014) =========================== Enhancements ------------ 1. Change: Indication if the driver is beta or release in a printk upon firmware dump.
Impact: ESX only.
cnic 2.5.18d (Feb 05, 2014) ============================ Fixes ----- 1. Problem: (CQ72694) Crash in bnx2x_cnic_notify() when getting iSCSI statistics.
Cause: Calling bnx2i_get_stats() after bnx2i has unregistered the device.
Change: cnic should use the per device RCU protected cp->ulp_ops[] when making the upcall to get statistics. It was incorrectly using the global cnic_ulp_tbl which is always valid even if individual devices have been unregistered.
Impact: iSCSI and FCoE
bnx2 2.2.5d (Jan 14, 2014) =========================== Fixes ----- 1. Problem: (CQ71941) Kernel panic when loading bnx2 driver on RHEL6.5 with inbox cnic driver loaded.
Cause: Incompatibility with inbox cnic driver.
Change: Added padding in bnx2 structure so that the inbox cnic driver will always detect NULL in the cnic_probe field.
Impact: RHEL6.5 and newer kernels (SLES11SP3 is not affected)
bnx2 2.2.5c (Jan 06, 2014) =========================== Enhancements ------------ 1. Change: Added ability to read PCI config registers and indirect memory via the ESX private IOCTL.
Impact: bnx2 ESX only.
2. Change: Add reporting of MDI/MDIX status to ethtool.
Impact: Copper devices only.
bnx2 2.2.5b (Nov 18, 2013) =========================== Fixes ----- 1. Problem: (CQ71793) 5709 sometimes does not link up in 100Mbps forced speed.
Cause: PHY advertisement register needs to be set to 0 when speed is forced. The default advertisement register value is 10 Mbps and it will not link up when the speed is 100 Mbps.
Change: Set advertisement register to 0 when speed is forced.
Impact: 5709C forced speed.
bnx2 2.2.4g (Nov 07, 2013) =========================== Fixes ----- 1. Problem: PHY loopback test fails when set to 100Mbps on 5708 Copper.
Cause: Regression caused by enabling auto-MDIX (PHY reg 0x18 shadow 7 bit 9).
Change: Disable it on 5708.
Impact: 5708 only.
bnx2 2.2.4f (Oct 29, 2013) =========================== Fixes ----- 1. Problem: Netqueue didn't get stop and re-initialized properly during reset task, change coalece setting, and self test operations.
Cause: Normal Netqueue stop and re-initialized operations weren't executed while the device went through a full reset.
change: Added proper Netqueue stop/start operations in the above code paths.
Impact: ESX only.
cnic 2.5.18c (Oct 29, 2013) ============================ Enhancements ------------ 1. Change: Add signature to the iSCSI TX doorbell to prevent iscsiuio from getting the wrong value when using older kernel drivers.
Impact: bnx2x iSCSI only.
bnx2 2.2.4e (Oct 23, 2013) ============================ Enhancements ------------ 1. Change: (CQ69514) Enable auto-MDIX when autoneg is disabled by setting copper PHY register 0x18 shadow 7 bit 9.
Impact: All bnx2 copper devices.
2. Change: Display driver version in vmkernel.log during ESX fw dump.
Impact: ESX only.
package 2.78.33 (Sept 23, 2013) =============================== Fixes ----- 1. Problem: Package does not compile on Xen Server 6.2
Cause: kernel compatibility issue.
Change: Added new CFLAGS from bnx2x Makefile for bnx2x_compat.h.
Impact: All distributions. These fixes are only compatible with bnx2x 1.78.56 and newer.
bnx2 2.2.4d (Sept 12, 2013) ============================ Fixes ----- 1. Problem: cnic irq failed to run after esxcli network nic down/up event.
Cause: esxcli network nic down/up event causes bnx2 driver go through bnx2_close and bnx2_open. The sequence of events will re-allocate status block memory and the new status block memory address is not communicated to cnic after bnx2_open.
Impact: bnx2 ESX only.
cnic 2.5.18b (Sept 12, 2013) ============================ Fixes ----- 1. Problem: iSCSI does not work with bnx2x 1.78.52.
Cause: bnx2x doorbell change not compatible with existing iscsiuio.
Change: Pass modified iSCSI CID to iscsiuio for backwards compatibility.
Impact: bnx2x iSCSI.
2. Problem: Panic in cnic after ifdown/ifup bnx2x iSCSI device.
Cause: Accessing uninitialized FCoE EQ. Bug introduced in 2.5.17c which started using bnx2x NO_FCOE macro. cnic did not consistently use NO_FCOE, causing FCoE EQ to be accessed by mistake.
Change: Use NO_FCOE macro consistently in cnic code.
Impact: FCoE.
bnx2 2.2.4c (Aug 30, 2013) ============================ Enhancements ------------ 1. Change: Fix compile errors see on ESX * struct chip_core_dmp definition conflicts with bnx2x, scoped this struct to have a bnx2 prefix * Compiled FW dump for ESX5.5
Impact: bnx2 ESX only.
cnic 2.5.17c (Aug 30, 2013) ============================ Fixes ----- 1. Problem: cnic crash when shutting down 57811 device.
Cause: 57811 Chip ID not reconized by cnic.
Change: Re-structured code to use common bnx2x macros for Chip ID, port ID, pfid.
Impact: iSCSI and FCoE on all bnx2x devices.
bnx2 2.2.4b (Aug 12, 2013) ============================ Fixes ----- 1. Problem: CQ70286 IOVP: PSOD while executing NIC up/down command using esxcli.
Cause: New bnx2_free_irq() also disable MSIX/MSI on the device during bnx2_close. When bnx2_open is called, driver attempt to get INTA interrupt instead of MSIX/MSI interrupt.
Change: Don't disable MSIX/MSI on the device upon close.
Impact: ESX only.
2. Problem: WoL does not work during suspend if device is not up.
Cause: WoL setup skipped in bnx2_suspend() if device is not up.
Change: Always setup WoL in bnx2_suspend().
Impact: bnx2 suspend.
Enhancements ------------ 1. Change: Update 5709 firmware to 6.2.1.c to include mechanism to flush the iscsi OOO ring to silence some error messages about stale hardware index.
Impact: iSCSI on these bnx2x devices where the iSCSI license can only be fully determined after firmware is loaded.
2. Change: Changes to match the new 5709 6.2.1.c firmware to flush the iSCSI OOO ring.
Impact: 5709 iSCSI.
bnx2 2.2.3t (July 23, 2013) ============================ Fixes ----- 1. Problem: CQ70262 IVOP: PSOD HeavyIOChangeMTU test on 5709 card.
Cause: During ring size change, bnx2_free_irq() was called without checking reset_irq flag.
Change: Don't call bnx2_free_irq() if reset_irq flag is false.
Impact: ESX only.
2. Problem: (CQ69619) ethtool NVRAM operations fail when device is down.
Cause: Driver checks and prevents NVRAM operations when device is down.
Change: Remove the check. The driver now stays in D0 power state when the device is down and NVRAM operations are possible.
Impact: ethtool -e|-E
cnic 2.5.16j (July 23, 2013) ============================= Fixes ----- 1. Problem: (RHEL BZ 759217) System hangs when attempting iSCSI connections on 57711E.
Cause: iSCSI license changes from supported to unsupported between bnx2x probe and bnx2x open. bnx2i is unaware that the device does not support iSCSI and attempts to do offload which never completes. The recent change to eliminate symbol_get() to obtain bnx2x_cnic_probe() exposed the problem.
Change: Check iSCSI license again during ->drv_register_cnic(). If there is no iSCSI license, skip ->ulp_start().
Impact: iSCSI on these bnx2x devices where the iSCSI license can only be fully determined after firmware is loaded.
bnx2 2.2.3s (June 27, 2013) ============================ Fixes ----- 1. Problem: PCI shutdown function does not work on ESX.
Cause: system_state and SYSTEM_POWER_OFF not defined.
Change: Added compatibility code.
Impact: ESX only.
bnx2 2.2.3r (June 27, 2013) ============================ Enhancements ------------ 1. Change: (CQ68271, 68277) In order to support ethtool NVRAM operations when the device is down, the following changes were made:
- converted to use new WoL and PM kernel APIs - removed power state changes during open and close - added pci shutdown function to setup WoL during shutdown - converted to new style suspend/resume driver APIs
Impact: Everything related to WoL, shutdown, suspend, resume. Because of the significant changes, the system should be rebooted after running "make install" for the new driver. Without reboot, the new driver may not work as it is not aware that the older driver has put the device into D3hot state.
bnx2 2.2.3q (May 24, 2013) ============================ Enhancements ------------ 1. Change: Simplified compatibility code for driver section macros, __devinit, __devexit, etc.
Impact: None.
bnx2 2.2.3p (May 23, 2013) ============================ Fixes ----- 1. Problem: Bootcode firmware may not detect new message from driver. (VMWare reported issue)
Cause: The initial sequence number may not be unique enough.
Change: Read from the firmware mailbox and add one to it as the initial sequence number.
Impact: All devices.
Enhancements ------------ 1. Change: Made changes to compile on the latest 3.x kernels.
Impact: All.
cnic 2.5.16i (May 23, 2013) ============================= Fixes ----- 1. Problem: (CQ69177) MTU change causes PSOD at bnx2x_drv_ctl
Cause: The OOO handler was falsely triggered to handle OOO tx completions even when bnx2x has failed to allocate resources for the OOO ring. This has caused bnx2x to hit a NULL ptr dereference.
Change: Fixed the cnic OOO handler.
Impact: bnx2x iSCSI only.
cnic 2.5.16h (April 30, 2013) ============================= Enhancements ------------ 1. Change: Added max_fcoe_exchanges parameter so that bnx2fc can support multiple FCoE ports on a device.
Impact: FcoE only.
bnx2 2.2.3o (April 30, 2013) ============================ Fixes ----- 1. Problem: (BDKL225) __napi_schedule assertion when bnx2 switch from MSI to INTx.
Cause: NAPI was not disabled before IRQ is freed when switching from msi mode to INTA mode which prevents VMkernel from updating the stale napi->intr_cookie value.
Change: Disabled NAPI before free IRQ and then re-enable NAPI after chip is re-initialized. In addition, enabling of NAPI should always be done after chip_init().
Impact: All.
bnx2 2.2.3n (Mar 11, 2013) ========================== cnic 2.5.16g (Mar 11, 2013) ========================== Fixes ----- 1. Problem: cnic driver does not compile on XEN server.
Cause: Shared bnx2x_compat.h relies on some CFLAGs to compile properly on XEN server.
Cause: Firmware bug and cnic error handling bug for TCP_CLOSE ramrod.
Change: Added check for iscsi completion error when receiving the TCP_CLOSE ramrod completion.
Impact: bnx2x iSCSI only.
bnx2 2.2.3m (Jan 28, 2013) ========================== cnic 2.5.16e (Jan 28, 2013) =========================== Fixes ----- 1. Problem: (CQ67528) cnic/bnx2 crash when both drivers are loaded on some kernels.
Cause: Shared struct bnx2 compiled differently on bnx2 and cnic, causing cnic to reference the wrong field.
Change: Added bnx2_compat0.h to define the common CFLAGs that affect structure sizes for both drivers to include.
Impact: All (if cnic is loaded)
bnx2 2.2.3k (Jan 25, 2013) ========================== Fixes ----- 1. Problem: CNIC driver didn't get started after bnx2_open().
Cause: CNIC driver is stopped when bnx2_close() is invoked. However, there is no equivalent turn on mechanism when bnx2_open() is called. The issue prevent bnx2i to offload iscsi connections during session recovery.
Change: Added equivalent cnic start procedure in bnx2_open().
Impact: ESX only.
cnic 2.5.16d (Jan 25, 2013) =========================== Fixes ----- 1. Problem: (CQ67375) Unable to turn iSCSI TCP delayed ACK on after it's been turned off.
Cause: tcp_flags in cnic's socket structure not cleared between destroy and create calls.
Change: Clear tcp_flags during socket create call.
Impact: iSCSI only.
2. Problem: (CQ67306) iSCSI TCP delayed ACK not working.
Cause: Firmware HSI change.
Change: Adapted to new firmware HSI which is now defining delayed ACK globally for the HBA.
Impact: iSCSI only.
cnic 2.5.16c (Jan 15, 2013) =========================== Fixes ----- 1. Problem: cnic does not compile on SLES11SP2.
Cause: bnx2x_compat.h conflicts with SLES11SP2 header files.
Change: Modilfed Makefile to detect SLES distribution so that the proper CFLAG can be defined for bnx2x_compat.h
Impact: SLES distributions only.
cnic 2.5.16b (Dec 12, 2012) =========================== bnx2 2.2.3j (Dec 12, 2012) ========================== Enhancements ------------ 1. Change: (CQ60429, 66302) Simplify cnic probing by not using symbol_get(). symbol_get() is unreliable as it fails while the network driver is still initializing.
Impact: iSCSI and FCoE (driver loading and unloading).
Cause: Race condition during simultaneous remote reset and local TCP close/reset. This may be a partial fix and additional fixes in other areas/drivers may be necessary to completely address all symptoms.
Change: If remote reset is detected to be in progress during local close/reset, it will wait for outstanding RAMRODs to complete. Without the wait, bnx2i will proceed to destroy the connection while the SRCH_DELETE/TERM_OFFLOAD RAMRODs are still pending.
Impact: bnx2x iSCSI only.
bnx2 2.2.3i (Nov 05, 2012) ========================== Enhancements ------------ 1. Change: (CQ65960) Make minor compatibility changes to support RHEL6.4
Impact: None.
2. Change: Added support for latest 3.x kernels.
Impact: All supported kernels.
cnic 2.5.14c (Nov 05, 2012) ========================== Fixes ----- 1. Problem: (CQ65178) Panic when loading and unloading cnic with bnx2i and bnx2fc.
Cause: The iSCSI EQ does not get reset during cnic init. When we get the first cnic IRQ, the iSCSI EQ index may be non-zero in the status block, causing the cnic driver to dereference NULL pointer.
Change: Added code to clear the iSCSI EQ index in the STORM memory.
Impact: 10G iSCSI.
bnx2 2.2.3h (Oct 16, 2012) ========================== Fixes ----- 1. Problem: Netdump crash when runing with ESX6.0 OS.
Cause: bnx2 poll controller routine is not compatible with ESX6.0.
Change: For ESX6.0, bnx2 will use ESX poll controller for netdump.
Cause: There is race condition where netdev_watchdog() could erroneouly flag tx timeout in a small window when bnx2_netif_stop() disabled tx queue state while carrier is still on.
Change: Carrier must be turned off before netif_tx_disable() is called.
cnic 2.5.12e (Aug 22, 2012) ========================== Fixes ----- 1. Problem: (CQ 65270): bnx2x IRQ assert on 57712 and newer devices that support iSCSI only.
Cause: Not arming IRQ properly when detecting that the device does not support FCoE. Regression from cnic 2.5.12c enhancement #3.
Change: Added function pointer to arm IRQ correctly based on chip type.
Impact: iSCSI and FCoE on all 10G devices.
cnic 2.5.12d (Aug 21, 2012) ========================== Fixes ----- 1. Problem: (CQ 65249): cnic panic on functions that support FCoE only.
Cause: Code accessing iSCSI resources that aren't initialized or allocated on functions that don't support iSCSI.
Change: Check for valid UIO resource before trying to free it. Always initialize iSCSI OOO resources.
Impact: 10G iSCSI and FCoE.
bnx2 2.2.3d (Aug 15, 2012) ========================== Fixes ----- 1. Problem: (CQ 65163): unhandled NETQUEUE messages 16 and 17 seen in vmkernel logs
Cause: Not properly handling unsupported NetQueue ops
Change: Properly handle the NetQueue ops 16 and 17 without printing the warning message
Impact: ESX only
Enhancements ------------ 1. Change: Try to recover from PCI block reset during TX timeout. Red Hat users have reported PCI block resets that could not be recovered during tx timeout.
Impact: None.
2. Change: Added mk_kernel_patch.sh to patch bnx2 driver into kernel tree.
Impact: None.
cnic 2.5.12c (Aug 15, 2012) ========================== Enhancements ------------ 1. Change: Added firmware dump support for ESX6.0.
Impact: ESX6.0.
2. Change: Reduced maximum iSCSI abort delay to 5 seconds
Impact: iSCSI
3. Change: Allocate FCoE or iSCSI resources on a cnic only if the device supports the protocol. This will reduce memory consumption on multi-function devices.
Impact: iSCSI and FCoE
bnx2 2.2.3c (July 09, 2012) ========================== Fixes ----- 1. Problem: Unmapping the wrong DMA address in bnx2_free_tx_skbs() in rare cases.
Cause: Not skipping the last entry in the tx BD ring.
Change: Use the proper macro to get the next BD entry.
Impact: On systems with IOMMUs enabled, the bug can be triggered when doing resets (ifdown, MTU change) during heavy TX traffic.
cnic 2.5.12b (July 03, 2012) ============================= Enhancements ------------ 1. Change: Updated to bnx2x firmware 7.4.8 HSI for TX BDs.
Cause: Bug in cnic when max OOO resource is reached
Change: Initailized packet descriptor to fix the bug.
Impact: iSCSI only.
bnx2 2.2.3b (June 29, 2012) ========================== Fixes ----- 1. Problem: Compile error in RHEL6.x kernel and similar kernels.
Cause: skb_frag_size() compatibility code not detected properly.
Change: Fixed Makefile to detect it from skbuff.h
Impact: None.
bnx2 2.2.2b (June 24, 2012) ========================== Fixes ----- 1. Problem: (CQ63682)PSOD in ESX upon device open.
Cause: NAPI was not disabled properly upon device close. Thus, ASSERT occurs upon reopening device.
Change: Add NAPI disable upon close and add netif_tx_disable for both linux and ESX build.
Impact: bnx2.
2. Problem: Enableing RSS interferes with RX NETQ feature when compiled for ESX build.
Cause: RSS is enabled by default in bnx2. The RSS feature will lead to firmware bypass NETQ code path.
Change: Disable RSS by default when compiled for ESX.
Impact: ESX.
Enhancements ------------ 1. Change: Partial sync-up with upstream driver. Please see Changelog.
Impact: All
cnic 2.5.11c (June 12, 2012) ============================= Fixes ----- 1. Problem: (CQ62298 Partial fix) When running in INTA mode, MTU change does not work. iSCSI/FCoE does not resume after MTU change.
Cause: During mtu change, bnx2x does not know that cnic is no longer handling IRQs.
Change: Added a new flag to let bnx2x know that cnic is no longer handling IRQ during reset.
Impact: bnx2x iSCSI and FCoE.
2. Problem: (CQ62937) bnx2x asserts during iSCSI test with corrupted TCP NOP-IN.
Cause: Corrupted NOP-IN falls outside of TCP window, causing FW to go into OOO mode. TCP close with outstanding OOO causes problem and the close does not complete.
Change: FW change to return an error in this case and cnic driver change to handle this error by proceeding to clean up the connection.
Impact: bnx2x iSCSI.
cnic 2.5.11b (April 30, 2012) ============================= Fixes ----- 1. Problem: (CQ62298 Partial fix) Fix for CQ62026 in cnic 2.5.9d introduced a regression of clearing the CNIC_UP flag before all CIDs have been deleted. The regression is causing warning messges that some CIDs have not been deleted. After fixing this, we're still encountering further bnx2x error messages in the INTA code path.
Change: Wait for all CIDs to be deleted before clearing CNIC_UP flag.
Impact: iSCSI and FCoE on all bnx2x devices.
bnx2 2.2.1l (April 18, 2012) ============================ Fixes ----- 1. Problem: PSOD on ESX because of inconsistant NetQueue state when the NetQueues are allocated/freed out of order
Cause: The forced freeing of the NetQueue before the NetQueue allocation can cause the incorrect NetQueue to be freed and marked incorrectly.
Change: Remove the freeing of the NetQueue in the allocation path and allow the load balancer to control the error path when NetQueue's could not be allocated/freed.
Impact: ESX only.
cnic 2.5.10c (April 18, 2012) ============================= Enhancements ------------ 1. Change: Added iface_num parameter to cm_create() and iscsi_nl_send_msg()to support bnx2i 2.7.2.2b.
Impact: iSCSI only.
bnx2 2.2.1k (April 04, 2012) ============================ Enhancements ------------ 1. Change: Reduced code size of FTQ dump during tx_timeout.
Impact: None.
cnic 2.5.10b (April 04, 2012) ============================= Enhancements ------------ 1. Change: Added PCI pass through support for bnx2x E2/E3 devices.
Cause: cp->ctx_tbl is NULL during cnic_ctl() call with COMPLETION_CMD.
Change: cnic is registered with the L2 drivers before we allocate the cp->ctx_tbl so it is possible to get called while cp->ctx_tbl is NULL. Added check for CNIC_UP flag before proceeding to dereference cp->ctx_tbl. This together with the RCU code will completely fix the problem.
Cause: Middle-box test corrupts packets and causes iSCSI fw to generate 0x4 (NIC_ERR) completion code. This conflicts with new logic that uses NIC_ERR to convey parity error.
Change: Redefined parity error completion code to be 0x81 for L4, iSCSI, and FCoE.
Impact: FCoE and iSCSI.
bnx2 2.2.1g (Feb 28, 2012) ========================== Fixes ----- 1. Problem: Calling of bnx2_vlan_rx_kill_vid() is not rtnl_lock protected. Change: hold rtnl_lock when execute this routine under ESX4.0 and ESX4.1. Impact: ESX4.0/4.1 only.
bnx2 2.2.1f (Feb 8, 2012) ========================== Fixes ----- 1. Problem: (CQ61327) Unable to pass traffic on RHEL5.x
Cause: bp->num_rx_rings not initialized due to backport errors. This was introduced in 2.2.1e when adding ethtool -l|L support.
Change: Initialized bp->num_rx_rings to 1 on these older kernels.
Impact: RHEL5 and SLES10 only.
cnic 2.5.8f (Feb 06, 2012) ========================== Enhancements ------------ 1. Change: Added VLAN update from iscsiuio. This allows VLAN to be specified in iface.
Impact: iSCSI only.
cnic 2.5.8e (Jan 24, 2012) ========================== Enhancements ------------ 1. Change: Enhanced FCoE parity recovery by sending immediate FW_DESTROY completion with error during parity error recovery.
Impact: FCoE only.
bnx2 2.2.1e (Jan 24, 2012) ========================== Enhancements ------------ 1. Change: Added support for ethtool -[l|L]. Please refer to README.TXT for details.
Impact: 5709 with support for MSIX only.
cnic 2.5.8d (Jan 19, 2012) ========================== Enhancements ------------ 1. Change: Enhanced FCoE driver registration to provide FCoE capabilities to bnx2x driver.
Impact: Systems with Management support of these features. These changes were made to match bnx2x 1.72.07.
2. Change: (CQ60867) Backed out earlier changes related to this CQ. genksyms checksums are based on structure names and type names, so the scheme of using an identical structure with a different name will not work.
Impact: None.
cnic 2.5.8c (Jan 10, 2012) ========================== 1. Problem: (CQ60744) Lose connection to FCoE targets after parity error recovery.
Cause: (Partial) DISABLE_CONN SPQ message does not complete, causing delaying waiting for bnx2fc to timeout.
Change: Added immediate KCQ error completion for FCOE_DISABLE_CONN. when SPQ fails.
Cause: If a TCP connection fails due to parity error, termination sequence does not follow the expedited error recovery path. This causes unnecessary delay during parity error recovery.
Change: Set the HW_ERR bit when TCP connection fails due to SPQ error. Termination will then follow the expedited error recovery path.
Impact: iSCSI on bnx2x.
3. Problem: (CQ60867) Module versioning warning when installing cnic driver on SLES11SP2 without matching bnx2i/bnx2fc.
Cause: cnic_register_driver() stub in cnic.c does not have cnic_ulp_ops structure that matches inbox bnx2i/bnx2fc.
Change: Added dummy cnic_ulp_ops that match RHEL6.2 and SLES11SP2 structures.
Impact: None.
bnx2 2.2.1d (Jan 10, 2012) ========================== Fixes ----- 1. Problem: PSOD seen in TX handling in either bnx2_tx_int() or bnx2_start_xmit() routines
Cause: Memory re-ordering is occuring so that the TX BD is not updated before the ringing of the TX doorbell.
Change: On ESX the wmb() macro is defined to only as a compiler barrier. Redfine the wmb() macro to properly synchronize memory using the sfence instruction.
Impact: ESX only.
cnic 2.5.8b (Jan 05, 2012) ========================== Enhancements ------------ 1. Change: Added CNIC_CTL_FCOE_ENHANCED_STATS_CMD and CNIC_CTL_FCOE_CAPABILITIES_GET_CMD as stubs.
Cause: SPQ errors during parity error recovery was not propagated to L4 and ULP, causing unnecessary long timeouts.
Change: Added immediate KCQ error completion for L4 and iSCSI kwqes if SPQ fails.
Impact: iSCSI on bnx2x.
bnx2 2.2.1c (Dec 21, 2011) ========================== Fixes ----- 1. Problem: (CQ60281) BNX2 hang on ESX 4.1 when changing tx ring size with Ethtool.
Cause: BNX2 set_ringparam() ethtool ops callback attempts to hold rtnl_lock while vmlinux has already held this lock when when invoking this callback. This leads to deadlock situation and driver will hang forever.
Change: Make sure all ethtool ops callbacks don't hold rtnl_lock.
Impact: ESX only.
2. Problem: (BDKL87) PSOD in bnx2 start_xmit() path when stressing with change ring size script on ESX 4.1u2.
Cause: When using ESX4.0/4.1u0-u2, the vmkernel doesn't not check tx queue state properly in certain race condition. This can lead to bnx2 start_xmit() to deference NULL tx buffer.
Change: check tx queue state before proceed with stat_xmit().
Impact: ESX4.0/4.1u0-u2.
cnic 2.5.7h (Dec 08, 2011) ========================== Enhancements ------------ 1. Change: Added iSCSI and FCoE driver status and counters support.
Impact: Systems with Management support of these features.
2. Change: Added upstream patches to sync up with upsteam driver: net: treewide use of RCU_INIT_POINTER net: remove ipv6_addr_copy()
Impact: None.
bnx2 2.2.1b (Dec 08, 2011) ========================== Enhancements ------------ 1. Change: Added several upstream patches to sync up with upsteam driver: net: treewide use of RCU_INIT_POINTER bnx2: fix skb truesize underestimation net: Remove unnecessary driver assignments of ethtool_ringparam fields to zero
Impact: None.
bnx2 2.1.12b (Oct 14, 2011) =========================== Fixes ----- 1. Problem: (CQ59255) iSCSI warning messages appear and performance drops when connected to a lefthand target.
Cause: Packets with invalid TTT generate warnings and exception handling.
Change: Updated to 6.2.3 firmware for 5706 and 6.2.1.b for 5709
Impact: iSCSI
cnic 2.5.7g (Sep 23, 2011) ========================== Enhancements ------------ 1. Change: Added cnic_register_driver()/cnic_unregister_driver stubs so that depmod will not return errors if native bnx2i/bnx2fc drivers have not been updated.
Impact: None.
bnx2 2.1.11e (Sept 19, 2011) =========================== Enhancements ------------ 1. Change: Set the feature, NETIF_F_NO_SCHED, for ESX 5.0 and greater releases only
Impact: ESX only
Fixes ----- 1. Problem: Compile errors on some older kernels.
Cause: Compatibility API pci_is_pcie() requires bool type which may not be defined on older kernels.
Change: Moved bool type compatibility definition above pci_is_pcie().
Impact: None.
bnx2 2.1.11d (Aug 30, 2011) =========================== Enhancements ------------ 1. Change: Integrate Code Review Comments from VMware * Add feature flag to reflect if a device is compliant with network scheduling. * Conditionally move bnx2 drivers to high memory * Remove unused field/code
Impact: ESX only
2. Change: Remove unnecessary read of PCI_CAP_ID_EXP from upstream.
Impact: minor (5709 only).
cnic 2.5.7f (Sep 13, 2011) ========================= Fixes ----- 1. Problem: Duplicate cp local variable in cnic_shutdown_rings().
Cause: Coding error.
Change: Removed duplicate variable.
Impact: None.
cnic 2.5.7e (Aug 8, 2011) ========================= Fixes ----- 1. Problem: (CQ57498) System hangs during bnx2x parity error recovery.
Cause: cnic waits for RAMRODs to complete without timeout. During parity error recovery, all DMAs will stop.
Change: Added timeouts to all RAMRODs.
Impact: iSCSI and FCoE on bnx2x
cnic 2.5.7d (July 28, 2011) =========================== Enhancements ------------ 1. Change: Increased the max number of FCoE sessions to 1024.
Impact: FCoE.
bnx2 v2.1.11c (July 26, 2011) ============================ Enhancements ------------ 1. Change: Upstream sync to use ethtool_cmd_speed API.
Impact: None.
2. Change: Added memory barrier to sync transmit descriptor before updating TX mailbox. We believe that this may fix some very rare panics reported by VMWare.
Impact: bnx2 packet transmit.
cnic 2.5.7c (July 26, 2011) =========================== Fixes ----- 1. Problem: FCOE_DESTROY_FUNC ramrod not completing, causing timeout and OOO cleanup timeout during MTU change.
Cause: FCOE_DESTROY_FUNC was sent before all FCoE CIDs have been deleted.
Change: Wait for all (2 seconds delayed) FCoE CFC_DELETE ramrods to be completed before sending FCOE_DESTROY_FUNC.
Impact: FCoE only.
cnic 2.5.7b (July 19, 2011) =========================== Enhancements ------------ 1. Change: Re-instated vlan_id in ->indicate_netevent(). It is needed by bnx2fc to handle NETDEV_UNREGISTER on VLAN devices.
Impact: bnx2fc.
2. Change: Allocate FCoE CID space only on E2+ devices.
Impact: None.
bnx2 v2.1.11b (July 19, 2011) ============================ Enhancements ------------ 1. Change: Added tx_timeout error handling and made it common with VMWare code.
Impact: bnx2 NETDEV WATCHDOG error handling
2. Change: Fix compile errors on the latest net-next upstream kernel.
bnx2 v2.1.10d (July 12, 2011) cnic 2.5.6c (July 12, 2011) ========================================================= Fixes ----- 1. Problem: Not compiling on 3.0.0 kernel.
Cause: Makefile not recognizing the 3.0.x kernel
Change: Modified Makefile and sync'ed with upstream drivers.
Impact: None.
bnx2 v2.1.10c (July 1, 2011) ============================ Fixes ----- 1. Problem: Not compiling on older kernels (such as RHEL5.4) and newer kernels (such as 2.6.36)
Cause: Problems with compatibility code.
Change: Fixed compatibility code.
Impact: None.
bnx2 v2.1.10b (June 30, 2011) ============================ Enhancements ------------ 1. Change: Added more complete MCP dump during error conditions.
Impact: None.
2. Change: Modified driver messages slightly to match upstream format (by using netdev_printk, netdev_err, etc).
Impact: None.
Fixes ----- 1. Problem: Not reading iSCSI license on 570x devices reliably.
Cause: We were reading from the CP scratch pad before the CP firmware is loaded.
Change: Read from MCP shmem location instead.
Impact: 1G iSCSI on bnx2 devices.
cnic 2.5.6b (June 30, 2011) ============================ 1. Problem: (CQ56522, CQ56259) Unable to connect to iSCSI target, bnx2x firmware assert during iSCSI connection
Cause: iSCSI L2 ring CID has been changed in bnx2x 1.70.14. uIP is using a hardcoded value of 0x11.
Change: cnic now passes the CID to uIP.
Impact: iSCSI on bnx2x devices.
2. Problem: (CQ56230) Cannot compile on some 32-bit systems.
Cause: Passing 64-bit NULL pointer as 32-bit 0 dma_addr_t value.
Change: Use 0 instead of NULL for dma_addr_t values.
Impact: None.
cnic 2.5.5b (June 22, 2011) ============================ Enhancements ------------ 1. Change: Added WWN info to cnic_eth_dev. This is a temporary solution until ndo_fcoe_get_wwn() is implemented.
Impact: None.
bnx2 v2.1.9b (June 22, 2011) ============================ Enhancements ------------ 1. Change: Added del_timer_sync() in bnx2_remove_one() from upstream commit 8333a46ad3877485e4d67ef499c6dda36bfd1f9a. See ChangeLog for details.
Impact: None.
bnx2 v2.1.8c (June 16, 2011) ============================ Enhancements ------------ 1. Change: In ESX, bnx2 will setup int mode during .probe time. However, the dev->name will be finalized only when pci_announce_device is done. So, we assign irq->name in bnx2_request_irq instead of in bnx2_setup_int_mode.
Impact: ESX only.
cnic 2.5.4b (June 1, 2011) ============================ Fixes ----- 1. Problem: (CQ55915) iSCSI does not connect on 57800 in 4-port mode.
Cause: cl_qzone_id was wrong on the 3rd and 4th port. uIP also has some problems determining 4-port mode.
Change: Fixed the QZONE_ID macro.
Impact: bnx2x iSCSI.
bnx2 2.1.8b (June 1, 2011) ============================ Fixes ----- 1. Problem: (CQ55422) NCSI firmware version displayed backwards on PPC.
Cause: Endian bug when reading the data from shared memory.
Change: Fixed byte swapping issue.
Impact: None.
2. Problem: bnx2 does not compile on some PPC distros.
Cause: pci_enable_pcie_error_reporting() not properly defined in some distros.
Cause: Added #ifdef to prevent compiling pci_enable_pcie_error_reporting() on PPC since it uses EEH instead of AER.
cnic 2.4.5b (May 16, 2011) ========================== Enhancements ------------ 1. Change: Check CFC delete error code during completion. If it is set, do not reuse the CID. This change is only compatible with bnx2x 1.64.30 or newer.
Cause: TCP reset request may not complete if there is a race with firmware receiving a remote RST.
Change: Added code to handle TCP reset racing with remote RST and TCP close racing with remote FIN.
Impact: iSCSI
cnic 2.4.3b (April 28, 2011) ============================ Fixes ----- 1. Problem: cnic may lose interrupts after processing 64 kcq entries.
Cause: The driver handles a maximum of 64 entries before calling the ulp drivers. If the chip has more entries, the driver does not handle the rest but acknowledges the latest status block index.
Change: Changed the logic to keep looping until all kcq entries are handled.
Impact: iSCSI and FCoE on all devices.
cnic 2.4.2b (April 21, 2011) ============================ Fixes ----- 1. Problem: (CQ54715, CQ54717) XSEMI parity error detected during iSCSI login on 57712 in NPAR mode.
Cause: Statistic counter ID greater than MAX_STAT_COUNTER_ID_E2 in client init data for iSCSI L2 ring.
Change: Check client ID against MAX_STAT_COUNTER_ID_EXX before enabling statistics.
cnic 2.4.1c (April 11, 2011) ============================ Fixes ----- 1. Problem: (CQ49586) iSCSI reboot test fails after a few iterations.
Cause: TCP port 60000 is used every time during boot. During reset, the TCP connection is never terminated so using the same port to connect to the target during reboot will not work.
Change: Added randomization of the first TCP port to use.
Impact: iSCSI.
bnx2 v2.1.6b (April 6, 2011) ============================ Enhancements ------------ 1. Change: Get iSCSI license information to prevent cnic from registering if there is no license. This will make it consistent with 10G behavior.
Impact: iSCSI only.
cnic 2.4.1b (April 6, 2011) =========================== Fixes ----- 1. Problem: (CQ53236) FCoE HBA not functional after reloading bnx2x.
Cause: In some distros, NETDEV_UP can happen immediately after NETDEV_REGISTER while bnx2x module is still in init state. At this time, cnic will not be able to symbol_get() from bnx2x, preventing the cnic from registering.
Change: Check all events, and we should be able to catch NETDEV_CHANGE abd register cnic.
cnic 2.4.0b (Mar 29, 2011) ========================== Enhancements ------------ 1. Change: Updated cnic to with with bnx2x 1.70.x and added support for 578xx devices.
Cause: Race condition between cnic driver and hardware DMA'ing a new status block with new iSCSI events. The bug was introduced when adding FCoE support.
Change: 1. Add proper memory barrier after reading status block. 2. After servicing FCoE EQ, we must loop back and check the iSCSI EQ again because we may have a newer status block index that is read after servicing the iSCSI EQ.
Impact: 57712 iSCSI and FCoE.
bnx2 v2.1.5c (Feb 15, 2011) cnic 2.3.5c (Feb 15, 2011) ====================================================== Enhancements ------------ 1. Change: Updated 5709 firmware to 6.2.1a, with netq fixes and iSCSI performance regression fixes.
Impact: 5709.
bnx2 v2.1.5b (Feb 08, 2011) cnic 2.3.5b (Feb 08, 2011) ====================================================== Fixes ----- 1. Problem: iSCSI does not connect in DCB environment.
Cause: iSCSI packets are tagged with the wrong ethertype.
Change: Added initialization of xstorm's reserved_vlan_type field.
Cause: BNX2_NETQ_HW_OPENED bit was not properly set.
Change: When the NetQueue device is openned properly set the BNX2_NETQ_HW_OPENED bit in the netq_flags field.
Impact: ESX NetQueue
2. Problem: NetQueue could possibly get out of sync with the uppper layers
Cause: The queue cleanup code between the driver and upper layer is not synchronized
Change: Introduce the NetQueue lock to synchronize the cleaning of the queues between the vmkernel and the bnx2 driver.
Impact: ESX NetQueue
3. Problem: iSCSI may not work if multi-function is disabled in NPAR NICs.
Cause: Bug in logic in detecting NPAR mode.
Change: Offload bit should not be checked if iSCSI MAC address is invalid.
Impact: iSCSI on 57712 NPAR NIC.
bnx2 v2.0.22c (Jan 6, 2011) cnic 2.2.12c (Jan 6, 2011) ========================================================= Enhancements ------------ 1. Change: Updated to 6.2.1a firmware for 5709. It has fixes for CQ51953 (ESX netqueue issue) and CQ51894 (iSCSI performance).
Impact: 5709 iSCSI and L2.
bnx2 v2.0.22b (Jan 4, 2011) cnic 2.2.12b (Jan 4, 2011) ========================================================= Enhancements ------------ 1. Change: Send netlink IF_DOWN message during cnic_unregister_device(). This fixes the problem of bnx2i referencing freed hba when we used to send the netlink message during cnic_unregister_driver().
Impact: iSCSI.
2. Change: Upstream fix for memory leak in cnic_alloc_uio_rings() when we cannot allocate all the memory.
Impact: None.
3. Change: Upstream fix to remove flush_scheduled_work() since it is obsolete.
Impact: None.
4. Change: Do not allow iSCSI on bnx2x devices in MF mode. The hardware does not yet support it.
Impact: iSCSI.
Fixes ----- 1. Problem: SPQ RAMROD type field does not consistently contain the function ID.
Change: Fixed in cnic_submit_kwqe_16() for HSI 6.0 and above.
Impact: iSCSI in NPAR mode.
bnx2 v2.0.21b (Dec 21, 2010) cnic 2.2.11b (Dec 21, 2010) ========================================================= Enhancements ------------ 1. Change: Call cm_connect_complete() when an invalid path_response netlink message is received. This will speed up iscsid in disconnecting the connection. This helps to resolve CQ49665.
Cause: Referencing the cp->kcq1 pointer before checking that the device is up.
Change: Fixed logic so that the cp->kcq1 pointer will only be refernced after checking the device is up.
Impact: iSCSI.
Enhancements ------------ 1. Change: Added retry logic in iscsi_nl_send_msg() to retry netlink messages to userspace.
Impact: iSCSI.
bnx2 v2.0.20f (Dec 09, 2010) cnic 2.2.10f (Dec 09, 2010) ========================================================= Fixes ----- 1. Problem: (CQ51544) Unable to connect to iSCSI targets on 57712 NPAR LOMs with NPAR disabled.
Cause: ff:ff:ff:ff:ff:ff iSCSI MAC address was used in this case.
Change: Add code to detect invalid MAC address and use port MAC address instead. That's the only to determine NPAR is disabled.
Impact: 57712 iSCSI.
2. Problem: MTU change in INTA mode crashes occasionally.
Cause: Status block may be accessed if INTA is shared with another device during reset. There is a short period that the status block is freed.
Change: Free IRQ before freeing status block.
Impact: bnx2 MTU change/ring size change.
3. Problem: Heap corruption reported by VMWare.
Cause: list_del() is called after kfree() in OOO code.
Fix: call list_del() before kfree().
Impact: iSCSI OOO.
bnx2 v2.0.20e (Dec 06, 2010) cnic 2.2.10e (Dec 06, 2010) ========================================================= Enhancements ------------ 1. Change: Adjusted hc timeout for EQ to use the T6.0 value of 4. This will match T5.x HC timeout values.
Impact: 10G iSCSI only.
2. Change: Minor changes to match upstream code.
Impact: None.
bnx2 v2.0.20d (Nov 16, 2010) cnic 2.2.10d (Nov 16, 2010) ========================================================= Fixes ----- 1. Problem: VMware NetQueue not working properly on 5709.
Cause: HSI mismatch.
Change: Updated HSI to match T6.0 bnx2 firmware.
Impact: NetQueue on 5709.
Enhancements ------------ 1. Change: Adjusted kernel compatibility code to compile on RHEL5.6.
Impact: bnx2 and cnic.
bnx2 v2.0.20c (Oct 28, 2010) cnic 2.2.10c (Oct 28, 2010) ========================================================= Fixes ----- 1. Problem: NMI occurs during repeated load/unload of bnx2 driver on 5709.
Cause: The 5709 chip's DMA block wasn't stopped properly before reset.
Change: Fixed by clearing DMA_ENABLE in NEW_CORE_CTL register and polling for pending bus transactions to stop.
Impact: 5709.
Enhancements ------------ 1. Change: Update 5706/5708/5709 firmware to 6.2.1.
Impact: All 1G devices.
2. Change: Fixed one circular lock dependency issue with bnx2i when making up call to send iSCSI NL message.
Enhancements ------------ 1. Change: (CQ49858) Support KVM pass-through mode by eliminating config cycles to non-standard PCI registers (PCICFG_MISC_CONFIG, PCICFG_REG_WINDOW*).
Impact: All chips.
bnx2 v2.0.18c (Sep 13, 2010) cnic 2.2.6c (Sep 13, 2010) ========================================================= Fixes ----- 1. Problem: (CQ49832) bnx2 flow control not working
Cause: Mistakenly disabled in firmware in 2.0.17j to fix CQ46393.
Change: Re-enabled RV2P flow control with additional fixes to for a number of odd flow control issues. New firmware versions are 6.0.15 for 5706/5708 and 6.0.17 for 5709.
Impact: 5706/5708/5709.
Enhancements ------------ 1. Change: Added zeroing of the iSCSI L2 ring's RX BD page to help signal ring shutdown to uIP.
Cause: A mismatch was found in the txbd where the hw prod idx did not match the sw prod idx (via the vlan_id field). The problem will show when uIP restarts without cnic reload. Since uIP restarted, it has lost all previous history about the uio ring.
Change: Added cnic_shutdown_rings to the uio_close path so whenever uio_open is called from uIP, the rings will start off fresh.
Impact: 570X/5771X iSCSI.
2. Problem: (CQ49211) Connection via bnx2i path fails in SuSE 11 SP1
Cause: For 5708/09, the previous firmware set did not take the l2 frame header length into account in the placement filter.
Change: Updated to 5706/08 fw 6.0.14 and 5709 fw 6.0.16 which addresses this issue.
Impact: 570X iSCSI.
bnx2 v2.0.17k (Aug 18, 2010) cnic 2.2.5k (Aug 18, 2010) ========================================================= Fixes ----- 1. Problem: iSCSI sessions do not recover when running under heavy stress conditions with the socket layer.
Cause: The NetLink buffer would get congested, so that the response to the PATH_UPDATE back to uIP would not be delivered.
Change: Use CNIC to throttle the number of outstanding PATH_REQ's to uIP, easing the congestion on the Netlink buffer.
Cause: RV2P firmware was set to drop input packets at a rate which is slower than input line rate when the host stops posting buffers. This has caused the rxp ftq to backup which eventually led to the rxp ftq hw to assert PAUSE and flood the network.
Change: RV2P firmware was modified to disable any waiting before dropping the input packet when the host doesn't post buffers.
Cause: cnic_wq destroyed while cnic_delete_task() is still queued in the workqueue.
Change: Call destroy_workqueue() after cnic_release() which waits for the cnic_delete_task() to finish.
Impact: 10G iSCSI.
bnx2 v2.0.17f (July 30, 2010) cnic 2.2.5f (July 30, 2010) ========================================================= Fixes ----- 1. Problem: iSCSI license not read correctly on 57712 in NIC partitioning mode.
Cause: Missing NIC partitioning license logic.
Change: Added NIC partitioning license logic.
Impact: 10G iSCSI.
Enhancements ------------ 1. Change: Updated 5709 firmware to 6.0.13. The new 5709 firmware has additional rx and tx performance improvements.
Impact: 5709.
bnx2 v2.0.17e (July 29, 2010) cnic 2.2.5e (July 29, 2010) ========================================================= Fixes ----- 1. Problem: (CQ49117, CQ49111) Soft locup when unloading bnx2x with cnic and bnx2fc/bnx2i loaded.
Cause: cnic_cm_stop_bnx2x_hw() thread under rtnl_lock() and pci_bus_sem has to wait for cnic_delete_task() to finish the 2-second wait and CFC DELETE of every FCoE or iSCSI connection. There may be work structs scheduled on the common workqueue ahead of cnic_delete_task() that require the same semaphores, leading to the soft lockup.
Change: Use a dedicated workqueue for cnic_delete_task().
Impact: 10G iSCSI and FCoE.
2. Problem: (CQ49113) Compilation error with bnx2x 1.60.30. (CQ48828) lediag fails with cnic loaded.
Cause: license_key structure changed to use all 32-bit fields. This change is to fix CQ48828 (lediag fails with cnic loaded). 16-bit access causes lediag failure.
Change: Made corresponding change to read 32-bit values for the iSCSI license.
Impact: 10G iSCSI.
3. Problem: (CQ49097) cnic panics when loading on 5708.
Cause: The driver uses NULL OOO ring pointers to initialize OOO for 5708.
Change: Skip OOO completely on 5708.
Impact: bnx2 iSCSI.
bnx2 v2.0.17d (July 28, 2010) cnic 2.2.5d (July 28, 2010) ========================================================= Fixes ----- 1. Problem: (CQ49071) Soft lockup during system shutdown after logging in to 10G iSCSI sessions.
Cause: This was introduced in 2.2.5c when fixing CQ49003. flush_scheduled_work() can deadlock because we're holding rtnl_lock and linkwatch_event may be on the workqueue.
Change: Fixed by using flags to wait for the cnic_delete_task() to finish.
Impact: 10G iSCSI.
2. Problem: cnic driver does not load on 5708 devices.
Cause: Bug in driver that skips devices without OOO support.
Change: OOO setup has been changed so that cnic initialization will continue even if OOO fails for whatever reason on all chips.
Impact: iSCSI.
Enhancements ------------ 1. Change: Updated 5708 firmware to 6.0.11 and 5709 firmware to 6.0.12. The new 5709 firmware fixes small packet rx performance issue. Some adiitional fixes for iSCSI and OOO.
Impact: All bnx2 chips.
bnx2 v2.0.17c (July 23, 2010) cnic 2.2.5c (July 23, 2010) ========================================================= Fixes ----- 1. Problem: (CQ49003) Panic in cnic_free_bnx2x_conn_resc() during ifdown with many 10G iSCSI active sessions.
Cause: cancel_work_sync() is not available in RHEL5.x kernels to wait for cnic_delete_task() to finish before freeing the device's data structures (in particular the csk table).
Change: Use flush_scheduled_work() to wait instead.
Cause: UIO device deleted before userspace has closed the device, causing various failures including kernel panic.
Change: Separated UIO structure from cnic_dev structure so that we can wait until UIO is closed before unregister and deleting UIO.
Impact: iSCSI. This change should have possitive impact on ifup/ifdown, MTU change/selftest/hotplug/etc with active iSCSI sessions.
Enhancements ------------ 1. Change: Allocate the actual number of MSI-X vectors instead of always 9. Also, keep trying if the number of vectors is less than the desired number.
Impact: 5709 networking and iSCSI.
bnx2 v2.0.16c (July 12, 2010) cnic 2.2.4c (July 12, 2010) ========================================================= Enhancements ------------ 1. Change: Added VLAN_TAG_PRESENT to distinguish between physical and VLAN netevents in cnic.
Impact: FCoE.
bnx2 v2.0.16b (July 8, 2010) cnic 2.2.4b (July 8, 2010) ========================================================= Fixes ----- 1. Problem: (CQ48753) cnic will not compile with bnx2x 1.60.27.
Cause: IGU symbols not defined without ELINK_DEBUG defined.
Change: Added ELINK_DEBUG.
Impact: None.
2. Problem: (CQ48717) Kernel panic in bnx2x during ifdown with active iSCSI sessions.
Cause: uio_close() is called after the device is already down. bnx2x will crash when we try to shutdown the iSCSI ring.
Change: Shutdown the iSCSI ring even if uio_close() is not called in the shutdown path.
Impact: 10G iSCSI.
Enhancements ------------ 1. Change: Always run in MSI-X mode on 5709.
Impact: 5709.
2. Change: Added wait of 2 seconds when sending PATH_REQ if UIO has not been opened yet. This improves the liklihood of login success during the first login if using older iscsid.
Cause: pci_save_state()/pci_restore_state incompatibility in older kernel. DECLARE_PCI_UNMAP_ADDR() caused dma mapping field to be undefined on kernels not using IOMMU.
Change: Do not use pci_save_state()/pci_restore_state() on older kernels. Use dma_addr_t to declare mapping fields.
Impact: None.
bnx2 v2.0.15j (June 30, 2010) cnic 2.2.3j (June 30, 2010) ========================================================= Fixes ----- 1. Problem: bnx2x firmware asserts if cnic is loaded on 57711E (MF) functions 2 and higher and the device is brought up.
Cause: Statistics for iSCSI ring not implemented, casuing firmware to assert when the iSCSI ring is initialized.
Change: Do not enable statistics if the clien ID is bigger than MAX_STAT_COUNTER_ID.
Impact: bnx2x iSCSI on 57711E.
2. Problem: cnic terminations for iSCSI and FCoE connections may panic or hang during repeated ifdown/ifup.
Cause: Data structures may be freed while cnic is still waiting for the 2 second CFC_DELETE wait time.
Change: Use cancel_work_sync() to wait for the completion of the cnic_delete_task(). Check that the CTX_FL_DELETE_WAIT flag has been set before waiting.
Impact: bnx2x iSCSI and FCoE.
3. Problem: (CQ48642) Compile errors on older kernels.
Cause: VMWARE_ESX_DDK_VERSION not defined in Linux.
Cause: Race condition between bnx2i initiated TCP close and an asynchronous RESET_COMP from firmware.
Change: Re-structured cnic code that handles close, abort, and various completion events to ensure all scenarios are accounted for with no race conditions.
Impact: All iSCSI connection termination scenarios.
Enhancements ------------ 1. Change: Added host iSCSI IP address to the cnic_dev structure so that bnx2i can report it to sysfs. This is needed for iSCSI boot during pivot_root.
Cause: PCI MSIX attributes not defined in kernel .h files.
Change: Added compatibility code.
Impact: None.
bnx2 v2.0.15d (June 2, 2010) cnic 2.2.3d (June 2, 2010) ========================================================= Fixes ----- 1. Problem: (CQ47942) rmmod hangs if the device has been opened and closed more than once.
Cause: netif_napi_add() called once during every ->open(). netif_napi_del() is only called once during rmmod.
Change: Call netif_napi_del() in ->close().
Impact: None.
bnx2 v2.0.15c (May 21, 2010) cnic 2.2.3c (April 21, 2010) ========================================================= Fixes ----- 1. Problem: service iscsid restart on 5709 does not work.
Cause: Not restarting KWQ correctly due to stale context.
Change: Fixed by correctly zeroing KWQ/KCQ/RX context memory.
Impact: bnx2 iSCSI.
2. Problem: iSCSI license not read correctly on 57711E in single function mode.
bnx2 v2.0.15b (May 12, 2010) cnic 2.2.3b (April 12, 2010) ========================================================= Fixes ----- 1. Problem: iSCSI does not work on 57712.
Cause: License checking always disabled on 57712.
Change: Added proper checking for 57712 iSCSI license.
Impact: None.
2. Problem: (CQ47360) Compile errors on older kernels not supporting UIO and latest iSCSI.
Cause: New cnic driver will only compile on kernels newer than 2.6.31 and some selected distros that have the backport.
Change: Makefile changes to compile cnic only on supported kernels.
Impact: None.
Enhancements ------------ 1. Change: Changed bnx2_cnic_probe() to bnx2_cnic_probe2() so that out-of-tree driver componenets will not inter- operate with upstream components. This avoids compatibility problems that often lead to kernel crashes.
Impact: Out-of-tree cnic will not operate with upstream L2 drivers and vice versa.
2. Change: Revert the PRS_REG_NIC_MODE change done in 2.0.11h. Newer bnx2x driver (1.60.18+) do not require this setting.
2. Change: Added VLAN ID to netdev event callback.
Impact: bnx2i.
bnx2 v2.0.13b (April 22, 2010) cnic 2.2.1c (April 30, 2010) ============================================================ Enhancements ------------ Add debug code to dump all KWQE's (RAMROD) posted to 5771x chipset. This feature can be enabled/disabled using module parameter, by default this feature is disabled. Also a exported function is introduced to dump 3 pages worth of KCQE's
bnx2 v2.0.13b (April 22, 2010) cnic 2.2.1b (April 22, 2010) ============================================================ Enhancements ------------ 1. Change: cnic has been updated to be similar to the upstream versions using UIO with added T6.0 iSCSI support for 10G and other bug fixes.
Impact: iSCSI now requires UIO, new bnx2i, and bnx2x 1.60.16+.
bnx2 v2.0.11j (April 22, 2010) cnic 1.10.2j (April 22, 2010) ============================================================ Fixes ----- 1. Problem: (CQ47298) Does not compile with bnx2x 1.60.16.
Cause: cnic_if.h has changed.
Change: Updated code to be compatible with new cnic_if.h.
Impact: None.
bnx2 v2.0.11i (April 15, 2010) cnic 1.10.2i (April 15, 2010) ============================================================ Fixes ----- 1. Problem: (RHBZ 511368) Driver loses one MSI-X vector after many hours of traffic.
Cause: Chip timing out on write cycle to the MSI-X mask bit, causing the unmask operation to be dropped.
Change: Increase GRC timeout in register 0x8cc. (Same fix from 2.0.8e).
Impact: bnx2x MSI-X mode.
2. Problem: (RHBZ 554706) scheduling while atomic warning when bonding and VLANs are used with cnic loaded.
Cause: bond_del_vlans_from_slave() holds bond->lock when calling ndo_vlan_rx_register(). bnx2 calls bnx2_netif_stop() to stop the rx handling while changing the vlgrp. The call also calls bnx2_cnic_stop() which has many sleeping functions.
Change: Do not stop cnic when VLANs are changed. Since there is no reset during VLAN change, there is no need to stop cnic. (Same fix from 2.0.8e).
Impact: VLAN and iSCSI.
3. Problem: (CQ46940) Poor small packet performance on 5709.
Cause: FTQ discards caused by bottlenecks in firmware.
Change: Upgraded to 5.0.0.j15 MIPS firmware for 5709. (Same fix from 2.0.8c)
Impact: 5709.
Enhancements ------------ 1. Change: Improved rx performance by prefetching next entry's descriptor header and SKB.
Impact: All chips.
2. Change: Updated cnic interface to support out-of-order processing. This is needed for bnx2x 1.60.15 but the feature is not available in cnic yet.
bnx2 v2.0.11b (Jan 28, 2010) cnic 1.10.2b (Jan 27, 2010) ======================================================== Enhancements ------------ 1. Change: Saved bnx2 statistics block before MTU change, ring change, etc.
Impact: bnx2 statistics.
bnx2 v2.0.10b (Jan 12, 2010) cnic 1.10.1b (Jan 12, 2010) ======================================================== Enhancements ------------ 1. Change: Improved cnic's MTU change/reset logic to fix multiple problems in VMWare.
Impact: iSCSI.
2. Change: Converted to bnx2x T6.0 HSI.
Impact: bnx2x iSCSI.
bnx2 v2.0.8e (April 13, 2010) cnic 1.9.13b (Dec 16, 2009) ========================================================= Fixes ----- 1. Problem: (RHBZ 511368) Driver loses one MSI-X vector after many hours of traffic.
Cause: Chip timing out on write cycle to the MSI-X mask bit, causing the unmask operation to be dropped.
Change: Increase GRC timeout in register 0x8cc.
Impact: bnx2x MSI-X mode.
2. Problem: (RHBZ 554706) scheduling while atomic warning when bonding and VLANs are used with cnic loaded.
Cause: bond_del_vlans_from_slave() holds bond->lock when calling ndo_vlan_rx_register(). bnx2 calls bnx2_netif_stop() to stop the rx handling while changing the vlgrp. The call also calls bnx2_cnic_stop() which has many sleeping functions.
Change: Do not stop cnic when VLANs are changed. Since there is no reset during VLAN change, there is no need to stop cnic.
Impact: VLAN and iSCSI.
bnx2 v2.0.8d (April 02, 2010) cnic 1.9.13b (Dec 16, 2009) ========================================================= Enhancements ------------ 1. Change: Improved rx performance by prefetching next entry's descriptor header and SKB.
Cause: Stale status block with old KCQ index after restarting hardware.
Change: Added some additional cleanup and initialization steps including zeroing the status block.
Impact: None.
Enhancements ------------ 1. Change: Updated RV2P P1 for 5709 to 5.0.0.j10 to address a flow control issue that can lead to context corruption. Flow control watermarks have also been optimized.
Impact: 5709 flow control.
bnx2 v2.0.6b (Dec 4, 2009) cnic 1.9.11b (Nov 19, 2009) ======================================================= Fixes ----- 1. Problem: (CQ44801) Unable to compile bnx2 on most 2.6 kernels.
Cause: print_mac() kernel compatibility not defined correctly.
Fix: Simple compatibility fix.
Impact: None.
bnx2 v2.0.5b (Dec 4, 2009) cnic 1.9.11b (Nov 19, 2009) ======================================================= Enhancements ------------ 1. Change: Sync'ed up with latest upstream bnx2 driver. Please see ChangeLog for details.
Impact: Yes, Linux and VMWare.
bnx2 v1.9.42b (Dec 1, 2009) ======================================================= Fixes ----- 1. Problem: Compile error against the VMware ESX 4.0 DDK
Cause: vmk_IscsiNetHandle is not defined with the VMware ESX 4.0 DDK
Change: Added compile flag
Impact: None.
Enhancements ------------
1. Change: Add BMAPILNX ioctl to allow for FW upgrade
2. Problem: (CQ42096) iSCSI sessions do not recover after running selftest/ifdown/etc with max sessions connected.
Cause: cnic_lock mutex has circular dependency, causing deadlock when iscsid tries to cleanup connections.
Change: Merged in upstream cnic patches to avoid circular dependency.
Impact: None.
Enhancements ------------ Change: (CQ43088) Changed the firmware version string format.
Impact: None.
bnx2 v1.9.40b (Nov 18, 2009) cnic 1.9.10b (Nov 12, 2009) ======================================================= Fixes ----- 1. Problem: (CQ44528) Kernel runs out of memory after load/unload bnx2.
Cause: RX SKB buffers were not freed.
Change: Fixed the regression introduced by VMWare development.
Impact: None.
2. Problem: (CQ44399) iLAB 5.10 connection establishment test failure.
Cause: Firmware SYN-ACK handling issue.
Change: Updated firmware to 5.0.0.j6 in bnx2_fw.h and 5.0.0.j9 in bnx2_fw2.h.
Impact: iSCSI.
Enhancements ------------ Change: (CQ43088) Added VPD-R V0 firmware version string to ethtool -i.
Impact: None.
bnx2 v1.9.39b (Nov 6, 2009) cnic 1.9.10b (Nov 12, 2009) ======================================================= Fixes ----- 1. Problem: (CQ44470) Kernel panics when bnx2/bnx2x is unloaded with active iSCSI sessions.
Cause: NETDEV_UNREGISTER will cause bcm570x_* transport to be destroyed while sessions may still be active.
Change: Use module referencing to prevent bnx2/bnx2x from unloading. This is a simple interim solution to revert back to the old behavior. In T6.0, we will migrate to the upstream driver architecture and network drivers will be able to be unloaded again.
Impact: None.
Enhancements ------------ Change: Added a short register dump during NETDEV_WATCHDOG.
bnx2 v1.9.35b (Oct 22, 2009) ======================================================= Fixes ----- 1. Problem: If only 1 queue is used on VMware ESX, iSCSI offload would fail.
Cause: The inboxed VMware driver would only use 1 MSI-X vector. Because of this the driver would not setup MSI-X
Change: Always setup MSI-X reguardless of the number of MSI-X vectors used.
Impact: 5709 iSCSI on VMware
bnx2 v1.9.34b (Oct 20, 2009) ======================================================= Fixes ----- 1. Change: Updated xinan firmware to 5.0.0.j8 Nop timeout tuning (VMware PR467194) Added a new data fw heartbeat to work with the new bootcode and also handle older bootcode.
1. Change: Make NetQueue module parameters more explict.
Impact: bnx2 VMware NetQ.
bnx2 v1.9.32b (Oct 8, 2009) cnic v1.9.7c (Oct 8, 2009) ======================================================= Fixes ----- 1. Problem: CNIC unable to handle an unsolicited RESET COMPLETE which would result in a hung session.
Cause: The CNIC driver couldn't handle unexpected SYN.
Change: The CNIC driver will now handle an unsolicited RESET COMPLETE and cleanup properly.
Impact: cnic
Enhancements ------------
1. Change: Allow the default NetQueue options to be controlled through the macro, BNX2_ENABLE_NETQUEUE.
Impact: bnx2 VMware NetQ.
bnx2 v1.9.31b (Oct 6, 2009) ======================================================= Fixes ----- 1. Problem: PSOD would occur when alloc()'ing NetQueue's
Cause: With the removal of the global 'disable_netq' parameters, the NetQueue CID's weren't being mapped in some cases
Change: Always map the NetQueue CID's
Impact: bnx2 VMware ESX NetQueue
bnx2 v1.9.30b (Oct 5, 2009) ======================================================= Fixes ----- 1. Problem: PSOD would occur because of TX timeouts
Cause: The VMware netdev watchdog timer was ran before the reset task got a chance to run on a loaded system.
Change: Elongated the TX timeout value for VMware ESX only to allow for the reset task to run.
Impact: bnx2 VMware ESX
Enhancements ------------
1. Change: Updated vmkernel module parameter, 'force_netq', to allow NetQueue setting to be adjusted per function rather then globally for all functions.
Impact: bnx2 VMware ESX
bnx2 v1.9.29b (Oct 1, 2009) ======================================================= Fixes ----- 1. Change: Updated xinan firmware to 5.0.0.j7 and teton firmware to 5.0.0.j4 which will fix L2 hang due to iSCSI PDU's padding byte extended to another TCP segment
Impact: 5706/5708/5709.
bnx2 v1.9.28b (Sep 25, 2009) ======================================================= Fixes ----- 1. Change: Updated firmware to 5.0.0.j6 which will add the corresponding flow control trip point.
Impact: 5709.
bnx2 v1.9.27b (Sep 24, 2009) cnic v1.9.7b (Sep 24, 2009) ======================================================= Fixes ----- 1. Problem: For the cnic users would see in the kernel logs:
Cause: The function was not taking into account the wrapping of the software and hardware producer indexes.
Change: Recaculate the difference between the index with wrapping taken into account.
Impact: cnic
Enhancements ------------
1. Change: Updated firmware to 5.0.0.j5 which increased the rxpq depth from 32 to 256 to enhance the performance on systems without flow control.
Impact: 5709.
bnx2 v1.9.26c (Sep 17, 2009) ======================================================= Enhancements ------------ 1. Change: Cleanup the VMware NetQueue code. Eliminate unneeded RX flush routine, fix the number of queues to be the same on 1500 and 9000 MTU sized packets.
Impact: bnx2 VMware NetQ.
bnx2 v1.9.26b (Sep 14, 2009) ======================================================= Fixes ----- 1. Problem: VMware PSOD on MTU change
Cause: MSI-X window was remapped to the beginning of the PCI config space. The driver would disable the bar space because the MSI-X window was remapped incorrectly. This would eventually cause a PSOD.
Change: Before the chip reset, the driver would disable MSI-X, after the chip reset, MSI-X is re-enabled.
Cause: If the driver is unable to allocate memory for the buffers, the device is not properly shutdown.
Change: Added logic to shutdown device if unable to allocate buffers and complete the setup of the device.
Impact: bnx2, changing MTU and ring sizes.
Enhancements ------------ 1. Change: Updated firmware to 5.0.0.j3 for better small packet rx performance. Firmware also fixes header digest error during I/O.
Enhancements ------------ 1. Change: If a TX timeout occurs, there could be the possiblity that the chip is hung. By printing chip state into the kernel ring buffer, it will be easier to determine this.
Impact: bnx2 iSCSI.
2. Change: The bnx2 firmware should always be matched with the proper bnx2 driver. The bnx2 firmware version string are now printed. It will be easier to identify the running firmware.
Impact: bnx2
3. Change: When a TX timeout occurs and the chip is reset, the ability to debug the chip further is lost. This is because the chip state information is lost during the reset. The users have a choice to prevent the chip reset.
Impact: bnx2
4. Change: Add a check to see if there was a KCQ overflow was in the bnx2x firmware. Now this check has been moved to the CNIC so that the driver could control the cleanup/recovery.
Impact: bnx2 iSCSI.
bnx2 v1.9.21b (July 16, 2009) ========================================================== Enhancements ------------ 1. Change: Updated firmware to 5.0.0.j2 to fix remote reset problem
Impact: bnx2 iSCSI.
bnx2 v1.9.20b (July 09, 2009), cnic v1.9.3 (July 09, 2009) ========================================================== Fixes ----- 1. Problem: (CQ42534) cnic.c does not compile on older kernels.
Cause: Some iscsi_proto constants not defined in
Change: Added the constant definitions if not already defined.
Impact: None.
Enhancements ------------ 1. Change: Updated firmware to 5.0.0.j to fix TMF releated iSCSI issues.
Cause: cnic driver sets the MSS without knowing the actual MSS option and timestamp option during TCP connection.
Change: Changed driver to set MSS to 0xffff so that firmware can calculate MSS on its own.
Impact: bnx2x iSCSI.
2. Problem: 1G iSCSI fails when initiator and target MTUs don't match and timestamp is enabled.
Cause: Firmware was not adjusting for the 12-byte timestamp option if MSS was reduced by MSS option.
Change Updated firmware to 5.0.0.i
Impact: bnx2 iSCSI.
3. Problem: (CQ42353) Unable to disable TCP timestamp on 10G iSCSI.
Cause: Timestamp was hardcoded to be enabled for 10G.
Change: Update global timestamp option during each TCP connection.
Impact: bnx2x iSCSI.
4. Problem: (CQ42329) bnx2x MC assert during IPv6 login/logout.
Cause: EQ filled with more than 128 L4 kcqes without MSI-X interrupt for 2 seconds. The driver can only buffer 128 L4 kcqes.
Change: Increased L4 kcqe buffer to 256 entries as a temporary solution. Need to understand the delayed interrupt issue.
Impact: None.
bnx2 v1.9.18b (June 25, 2009), cnic v1.9.1 (June 24, 2009) ========================================================== Enhancements ------------ 1. Change: Added FTQDiscard counter to the list of counters being reported. During small packet test, there may be FTQ overflow and this counter is very useful.
Impact: None.
2. Change: Updated firmware to 5.0.0.h to improve small packet L2 performance and to enhance iSCSI TMF handling.
Impact: 5706/5708/5709.
bnx2 v1.9.17b (June 24, 2009), cnic v1.9.1 (June 24, 2009) ========================================== Fixes ----- 1. Problem: Leaking NetQueues if the firmware did not respond in time
Cause: System might be clogged and there is not enough time to process the KCQ
Change: Updated driver/firmware to allow the calling of the free RX queue request before a RX alloc request is issued
Impact: 5709
2. Problem: An offloaded iSCSI connection would get stuck
Cause: Issing an offload request might fail, and this was not handled properly.
Change: Updated driver/firmware to return the proper return code and handle offload connection failures.
Impact: 5706/5708/5709
3. Problem: tasklet_init() is being called on a task that is scheduled
Cause: When the CNIC calls register_device(), that task might already be schedled.
Change: tasklet_disable() is insufficient because the tasklet remains scheduled and stays on the tasklet list, instead tasklet_kill() is now used.
Impact: 5706/5708/5709
bnx2 v1.9.16b (June 10, 2009), cnic v1.9.0 (June 10, 2009) ========================================================== Enhancements ------------ 1. Change: (CQ38228) Use symbol_get() for ipv6 symbols so that the cnic driver will load without necessarily loading ipv6 modules.
Impact: iSCSI over IPv6.
2. Change: Updated 5706/08/09 MIPS firmware to 5.0.0.g.
Impact: 5706/08/09.
3. Change: Backported some dma_mapping_error() checking.
2. Change: In the cnic driver, save the last allocated TCP port during unregistration so that previously used TCP ports will not be immediately re-used.
bnx2 v1.9.13b (May 18, 2009) ========================================== Fixes ----- 1. Problem: Potentially exceeding the NetQueue limit recommendations by VMware which could stress system resources
Cause: When system resources are strained.
Change: There are now limits on the number of NetQueues which the driver will request: When the MTU is 1500 the max number of queues per port is 8 When the MTU is 9000 the max number of queues per port is 4
Impact: NetQueue enabled version of VMware ESX
2. Problem: Getting conflicting NetQueue and iSCSI completions
Cause: When MSI-X is not used on a 5709, NetQueue is still enabled
Change: NetQueue is not disabled is MSI-X is not used.
Impact: NetQueue enabled version of VMware ESX
bnx2 v1.9.12b (May 13, 2009) ========================================== Fixes ----- 1. Problem: Potentially returning a negative number of NetQueues
Cause: When calculating the number of rings, we use the calculation from the number of msi-x vectors returned, The number of NetQueues returned could potentially be negitive if only 1 vector was returned. This is because the driver was subtracting 2 instead of subtracting 1 (for the default queue) from the total number of rings.
Change: Return the proper number of queues not including the default queue.
Impact: NetQueue enabled version of VMware ESX
bnx2 v1.9.11b (May 12, 2009), cnic v1.8.5 (May 13, 2009) ======================================================== Fixes ----- 1. Problem: TCP Delay ACK not working on bnx2x iSCSI
Cause: Disabled in cnic driver.
Change: Fixed csk->tcp_flags definitions and enabled the proper storm bit for delay ACK.
bnx2 v1.9.10b, cnic v1.8.4 (May 11, 2009) ========================================== Fixes ----- 1. Problem: NetQ and iSCSI do not work in Vmware environment.
Cause: 1. cnic driver is overwriting CP and COM mailbox bit values newly defined to support multiple kcqs.
2. Firmware is completing some iSCSI kcqes on the NetQ's kcq.
Change: Fixed cnic driver to only set and clear bit 0 of the CP and COM mailbox.
Firmware has been updated to 5.0.0d. This firmware also supports TCP timestamp option for iSCSI connections.
Impact: 5706/5708/5709 iSCSI, NetQ.
bnx2 v1.9.9b (May 1, 2009) ========================================== Fixes ----- 1. Problem: There is link, but can't pass traffic on ESXi
Cause: Bits in the RX context are being trampled during the renegotiation of the link.
Change: RX context offset 0x6 should only be initialized once during init and not be updated during run-time. Offset 4 contains the BIDX that's mapped to the mailbox.
Impact: VMware with NetQueue
bnx2 v1.9.8b, cnic v1.8.2 (April 27, 2009) ========================================== Enhancements ------------ 1. Change: Updated cnic driver to support 1.50.x HSI as well as the older 1.48.107 HSI. A compile flag will be used to select one or the other.
Impact: iSCSI on bnx2x.
2. Change: Spec file and Makefile changes detect the proper module install directory.
Impact: installation.
bnx2 v1.9.7b, cnic v1.8.1 (April 22, 2009) ========================================== Fixes ----- 1. Problem: Compile error with redfinition of struct kwqe.
Cause: Both the CNIC and bnx2 defined this structure.
Change: Because the bnx2 definition is L2 specific, it was renamed to struct l2_kwqe.
Impact: None.
2. Problem: Add context memory DMA alignment for 57710.
Cause: For the 57710 context memory needs to be 16k aligned. Without this alignment you will see errors when trying to establish more then 5 iSCSI connections on VMware ESX 4.0 U1.
Change: Properly aligned the context memory by allocating a bigger chunk of memory and then finding the proper alignment. This reduces the number of possible connections in half but now we can properly establish more then 5 connections on VMware.
Impact: iSCSI.
bnx2 v1.9.6b (April 17, 2009) ============================= Enhancements ------------ 1. Change: Added NetQueue support for VMware.
Impact: 5709.
bnx2 v1.9.5b (April 17, 2009) ============================= Enhancements ------------ 1. Change: Updated to 5.0.0.a firmware with NetQ support and iSCSI max connection license information. RV2P firmware unchanged: 4.6.16 for 5706, 4.6.15 for 5709.
Impact: All chips.
2. Change: Set USE_INT_PARAM on 5709. This will switch the chip in use "interrupt mode" coalescing after MSI/MSI-X.
Impact: 5709.
3. Change: Included 5706 when doing statistics block DMA workaround.
Impact: 5706.
bnx2 v1.8.8b (March 12, 2009) ============================= Enhancements ------------ 1. Change: Updated to latest 4.6.17 CP firmware for 5709.
Impact: iSCSI licensing on 5709.
bnx2 v1.8.7b, cnic v1.7.8 (March 10, 2009) ========================================== Enhancements ------------ 1. Change: Reverted 5706/5708 firmware to 4.6.16. Low latency interrupt mode does not work on 5706/5708.
Impact: None.
2. Change: VMWare changes to expose max. number of iSCSI connections in the cnic_device structure.
Cause: msi related symbols undefined because CONFIG_PCI_MSI is not enabled on Xen kernels.
Change: Added CONFIG_PCI_MSI around the msi related code.
Impact: None.
2. Problem: (CQ39818) iSCSI targets do not reconnect after running self test.
Cause: Interrupt is disabled by bnx2 before notifying CNIC to clean up and stop. As a result, bnx2i will not receive interrupts when closing the connections if sharing INTA/MSI with network.
Change: Disable interrupt after notifying CNIC to stop.
Impact: iSCSI.
bnx2 v1.8.6b, cnic v1.7.7 (March 2, 2009) ========================================= Enhancements ------------ 1. Change: Updated to new 5706 firmware (4.6.17) and 5709 firmware (4.6.16). New interrupt coalescing mode for improved latency and iSCSI cache line fix on 5709.
Cause: Bug in bnx2_free_rx_mem(). The jumbo page ring memory was freed incorrectly using the wrong local variable as array index.
Change: Fixed bug by using the correct variable as array index.
Impact: Jumbo frames.
2. Problem: (CQ38965) iSCSI connection timeout on bnx2x.
Cause: During CFC Delete RAMROD completion handling, the wrong (older) iSCSI connection ID can sometimes be retrieved using the harware CID. The CID in the mapping table was not cleared after the CID was freed.
Fix: Adding clearing of the CID in the data structure after a CID is freed.
Impact: bnx2x iSCSI.
Enhancements ------------ 1. Change: (CQ38744) Reduced R2TQ memory usage to match new firmware interface (firmware 4.8.9). This reduces the amount of kernel memory substantially for each iSCSI connection on bnx2x.
bnx2 v1.8.2b, cnic v1.7.2 (Nov 25, 2008) ======================================== Fixes ----- 1. Problem: bnx2x iSCSI does not work on functions 2 or above.
Cause: This was caused by multiple problems: a) Status block ID specified by bnx2x was wrong. b) MSI-X vector assigned to CNIC was wrong. c) New method to ack. status block using HC register was not implemented. d) Status block ID in CSTORM status block is always 0, and as a result, the status block ID used to ack. the status block was wrong.
All these problems only affect functions 2 and above.
Change: All problems fixed in bnx2x and cnic.
Impact: bnx2x iSCSI.
bnx2 v1.8.2b, cnic v1.7.1 (Nov 15, 2008) ======================================== Enhancements ------------ 1. Change: Added CNIC support for Multi function bnx2x iSCSI.
Impact: bnx2x iSCSI.
bnx2 v1.8.2b, cnic v1.6.2 (Nov 12, 2008) ======================================== Enhancements ------------ 1. Change: Updated to latest 4.6.13 5709 firmware to fix context corruption with flow control enabled.
Impact: 5709.
2. Change: Added support for 5716S PCI ID.
Impact: None.
Fixes ----- 1. Problem: (CQ35904) Netdump does not work.
Cause: Problem introduced by MSI-X multiqueue. IRQ handlers were changed to take bnx2_napi parameter instead of netdev parameter.
Change: Fixed by passing proper parameter to IRQ handler from netpoll. All IRQ handlers are called when using multiple MSI-X vectors.
Impact: 5709 netpoll.
bnx2 v1.8.1f, cnic v1.6.1 (Nov 5, 2008) ======================================== Fixes ----- 1. Problem: All TSO packets corrupted on 5706/5708.
Cause: Firmware bug zeroing the wrong field in IP header.
Change: Updated to latest 4.6.11 5706/5708 firmware and 4.6.12 5709 Firmware.
Impact: 5706/5708/5709.
2. Problem: bnx2x chip asserts when trying to make iSCSI connection to an unknown IP address.
Cause: When connection fails, the driver sends a command to an unitialized CID.
Change: Added logic to only send deletion commands to initialized CIDs.
Impact: bnx2x iSCSI.
Enhancements ------------ 1. Change: Added support for one single VLAN to a bnx2x iSCSI interface.
Impact: bnx2x iSCSI.
bnx2 v1.8.1e, cnic v1.6.0 (Oct 27, 2008) ======================================== 1. Change: Updated to latest 5709 firmware to fix iSCSI data integrity problem.
Impact: 5709.
bnx2 v1.8.1d, cnic v1.6.0 (Oct 23, 2008) ======================================== Enhancements ------------ 1. Change: Updated to latest bnx2 firmware to fix iSCSI data integrity problem.
Impact: 5706/5708/5709.
2. Change: Updated to the latest bnx2x HSI files.
Impact: bnx2x iSCSI.
bnx2 v1.8.1c, cnic v1.5.9 (Oct 13, 2008) ======================================== Fixes ----- 1. Problem: (CQ37905) Unable to compile on SLES10 SP2.
Cause: DIV_ROUND_UP macro not defined in this kernel.
Change: Added it for compatibility.
Impact: None.
Enhancements ------------ 1. Change: Updated to latest 5709 firmware that fixes an NCSI problem.
Impact: 5709.
2. Change: Handle TCP reset in the middle of TCP close more appropriately.
Impact: iSCSI.
3. Change: Handle iSCSI license checking in the same way as 5708/5709.
Impact: iSCSI on bnx2x.
bnx2 v1.8.1b, cnic v1.5.8 (Oct 13, 2008) ======================================== Fixes ----- 1. Problem: bnx2x iSCSI CIDs may be allocated outside the range of allocated host memory.
Cause: CID range bigger than the amount of allocated host context memory.
Change: Changed to match the CID range with memory range.
Impact: bnx2x iSCSI.
Enhancements ------------ 1. Change: Sync'ed with the latest upstream driver bnx2 1.8.1.
Impact: None.
2. Change: Implemented iSCSI connection license enforcement for bnx2x devices.
Impact: bnx2x iSCSI.
bnx2 v1.8.0j, cnic v1.5.7 (Oct 6, 2008) ======================================== Fixes ----- 1. Problem: (CQ37610) Chip hangs when changing MTU with active iSCSI connections.
Cause: Both cnic and bnx2 drivers setting up the chip at the same time.
Change: Added check so that the register_cnic function will fail if the bnx2 driver is in reset.
Impact: iSCSI.
2. Problem: (CQ37762) Able to unload bnx2/bnx2x drivers while there are active iSCSI connections.
Cause: CNIC driver does not have a reference count on the BNX2/BNX2X drivers.
Change: This became a problem after the register_cnic function was no longer exported. To solve the problem, the CNIC driver will now get an explicit reference during register_cnic.
Impact: iSCSI.
3. Problem: (CQ37429) MMIO access while the chip is in D3hot state.
Cause: The driver does not check if_running state consistently during ethtool operations.
Change: Added proper checks to all ethtool and multicast change functions.
Impact: ethtool operations and multicast operations.
Enhancements ------------ 1. Change: Simplified ipv4 TSO logic in the driver. This was made possible with newer 5708 firmware.
Impact: 5708 TSO and other traffic.
2. Change: ethtool -p now blinks forever. This is the standard behavior in most other net drivers.
Impact: ethtool -p.
bnx2 v1.8.0i, cnic v1.5.5 (Sep 30, 2008) ======================================== Fixes ----- 1. Problem: (CQ36787) iSCSI login/logout commands fail on 5709 after a while.
Cause: Not handling the KWQ completion properly on 5709 in INTA/MSI mode.
Change: Changed to handle KWQ completions by checking the cmd_consumer_index instead of the rx_quick_index15.
Impact: 5709 ISCSI in INTA/MSI mode.
2. Problem: (CQ37497) CNIC driver does not compile on powerpc.
Cause: csum_ipv6_magic() not defined.
Change: Added #include
Impact: None.
v1.8.0g (Sep 24, 2008) ======================== Fixes ----- 1. Problem: (CQ37511) System locks up when loading cnic driver on 2.6.16 kernel.
Cause: symbol_put_addr() in 2.6.16 tries to acquire the same lock twice.
Change: Workaround by using __symbol_put() which does not have the same problem.
Impact: None.
v1.8.0f (Sep 23, 2008) ======================== Fixes ----- 1. Problem: (CQ37405) Kernel panic when performing ifup/ifdown with iSCSI connections on bnx2x devices.
Cause: Sending searcher delete to bnx2x devices when connection was not established (due to Spanning Tree or other reasons).
Change: Check PG offload state before sending searcher delete.
Impact: iSCSI on bnx2x.
v1.8.0e (Sep 22, 2008) ======================== Enhancement ----------- 1. Change: Updated to latest driver firmware 4.6.6 for 5709.
Impact: 5709.
2. Change: Updated cnic so that it will not crash even if using older bnx2/bnx2x drivers without CNIC support. The net driver can also be loaded after cnic and it will still work without crashing.
Impact: iSCSI.
3. Change: (CQ 37381) Updated driver to check Vaux PRESET before allowing WoL. This is needed to support 5709 quad-port boards.
v1.8.0c (Aug 25, 2008) ======================== Fixes ----- 1. Problem: Does not compile on older kernels.
Cause: "__maybe_unused" undefined on older kernels. "num_online_cpus()" undefined on 2.4 kernels.
Change: Added compatibility code to workaround.
Impact: None.
v1.8.0b (Aug 25, 2008) ======================== Enhancement ----------- 1. Change: Updated to latest driver firmware 4.6.2 for 5709.
Impact: 5709.
v1.7.9c (Aug 5, 2008) ======================== Fixes ----- 1. Problem: bnx2 does not compile on older kernels.
Cause: is missing on 2.6.19 and older kernels.
Change: Added compatibility code to check for kernel version before including the file.
Impact: none.
v1.7.9b (Aug 5, 2008) ======================== Enhancements ------------ 1. Change: Added multi-tx ring for 5709. This fetaure is available on 2.6.27 kernel when using MSI-X.
Impact: 5709
2. Change: Added support for 57710 iSCSI in the CNIC driver.
v1.7.7b (July 9, 2008) ======================== Enhancements ------------ 1. Change: Added probe function so that the CNIC driver can get the pci_device pointer earlier before registration.
Impact: iSCSI.
2. Change: Added support for 5716.
Impact: None.
v1.7.6c (June 6, 2008) ======================== Enhancements ------------ 1. Change: Added multi-ring RX support on 5709 using MSI-X. This feature is only available on 2.6.24 and newer kernels running on SMP machines.
Impact: 5709.
2. Change: Added secondary unicast address support. We now support up to 5 unicast addresses. This feature is only available on 2.6.23 and newer kernels.
Impact: All chips.
v1.7.6b.1 (Aug 14, 2008) ======================== Fixes ----- 1. Problem: (CQ36808) VLAN tagged packets received by host stack without the VLAN tag.
Cause: If no VLANs are set up using vconfig, and if the driver configures the chip to strip the VLAN tag, the problem can happen. With IPMI or UMP enabled, the driver is likely to configure the chip to strip the VLAN tag.
Change: Modified the driver to re-insert the VLAN tag when necessary. I.e. when IPMI/UMP is enabled and vconfig has not setup any VLANs.
Impact: All chips receiving VLAN traffic.
v1.7.6b (May 29, 2008) ======================== Fixes ----- 1. Problem: IPv4 TSO generates bad packet when the TSO packet size is 1-MSS.
Cause: Probably firmware does not expect this boundary condition.
Change: Detect this 1-MSS condition in driver and skip the TSO logic. 1-MSS TSO packet will be treated like a regular TX checksum offload packet.
Impact: TSO on all chips.
2. Problem: Cannot disable VLAN stripping even when management firmware is disabled.
Cause: The new logic to check firmware VLAN stripping capability was buggy.
Change: Fixed the code so that VLAN stripping can always be disabled if management firmware is disabled.
Impact: VLAN/management firmware.
v1.7.5d (May 13, 2008) ======================== Enhancements ------------ 1. Change: Incorporated latest firmware 4.4.18. Bug fix is in RV2P.
Impact: All chips.
v1.7.5c (May 7, 2008) ======================== Enhancements ------------ 1. Change: Incorporated latest firmware 4.4.17. Bug fix is in RV2P.
Impact: All chips.
v1.7.5b (May 5, 2008) ======================== Fixes ----- 1. Problem: (CQ35080) Hard lock when running ethtool -s on the device that is in the down state.
Cause: I/O to the device to set link speed in D3-hot state can cause lockup because the chip does not respond to I/O.
Change: ethtool -s will just store the new settings without configuring the new speed. When the device is later brought up, the new speed will be set as part of chip init.
Impact: All chips.
2. Problem: (CQ35075 CQ35042) Various compile errors on SuSE SLES 9 and SLES 10 distro kernels.
Cause: ip_hdr() and __le32/__le32 backported to the distro kernels.
Change: Adjusted compatibility defines.
Impact: None.
Enhancements ------------ 1. Change: Incorporated latest 5709 firmware 4.4.16. Timer context scanning is reduced with this firmware to 500us. With this, the temporary enhancement in 1.7.4c #2 has been removed.
Impact: 5709 iSCSI.
v1.7.4e (April 26, 2008) ======================== Fixes ----- 1. Problem: (CQ34841) 5709 does not link up on some remote PHY systems.
Cause: No initial link interrupt.
Change: Added code to poll for link when remote PHY is present.
Impact: Remote PHY systems.
2. Problem: (CQ34767) Kernel panic on 5709 when using jumbo frames with NCSI traffic.
Cause: RV2P bug causing RX packets to overwrite kernel memory.
Change: Updated to latest RV2P code for 5709 and 5708.
Impact: 5706/5708/5709.
v1.7.4d (April 17, 2008) ======================== Fixes ----- 1. Problem: IPv6 iSCSI does not work.
Cause: Added code in the last version 1.7.3c to check for CONFIG_IPV6 before enabling the IPv6 CNIC support. This failed to check for CONFIG_IPV6_MODULE if IPv6 is configured as module in the kernel configuration.
Change: Changed the checking to CONFIG_IPV6 or CONFIG_IPV6_MODULE.
Impact: None.
v1.7.4c (April 16, 2008) ======================== Fixes ----- 1. Problem: (CQ34814, CQ33984) Driver does not compile on 2.4 kernels.
Cause: __le32 and __be32 not defined in 2.4 kernels.
Change: Defined these as u32 on 2.4 kernels.
Impact: 2.4 kernels.
Enhancements ------------ 1. Change: Incorporated latest 5709 4.4.12 firmware to fix various iSCSI problems.
Impact: 5709.
2. Change: Slowed down the timer block reload time. It was noticed that after the CNIC driver was unloaded, the timer context memory was reloaded in a tight loop by the chip. This issue needs to be properly addressed in the firmware at a future date.
Impact: iSCSI.
v1.7.4b (April 11, 2008) ======================= Enhancements ------------ 1. Change: Incorporated latest 5709 4.4.11 firmware to fix various iSCSI problems.
Impact: 5709.
v1.7.3k (April 9, 2008) ======================= Enhancements ------------ 1. Change: Incorporated latest 5709 4.4.10 firmware to fix various iSCSI problems. CID ranges are now read directly from shared memory.
v1.7.3g (March 10, 2008) ======================= Enhancements ------------ 1. Change: Updated to latest 5709 firmware version 4.4.7.
Impact: 5709.
v1.7.3f (March 10, 2008) ======================= Fixes ----- 1. Problem: CNIC takes a long time to resolve ARP, causing iSCSI to fail.
Cause: NETEVENT_NEIGH_UPDATE event notifier sometimes takes a long time to be called.
Change: This is under investigation. For now, the workaround is to use the existing neighbour entry if it is in NUD_VALID state. Previously, we would only use it if it was in NUD_CONNECTED state.
Impact: iSCSI neighbour resolution.
2. Problem: iSCSI sometimes fails to initialize.
Cause: The KWQ is in full condition and prevents any KWQE to be sent to the firmware. This is caused by the KWQ consumer index in the status block not initializing to 0.
Change: Added workaround to skip the KWQ full condition check when sending the first KWQE. This should be properly fixed in firmware.
Impact: None.
v1.7.3d (February 15, 2008) ============================ Fixes ----- 1. Problem: System hangs with iSCSI traffic.
Cause: Infinite loop in NAPI poll.
Change: Fixed the problem of not comparing the CNIC tag properly when determining whether there is more work in NAPI poll.
Impact: None.
2. Problem: iSCSI does not work on 5709
Cause: Not initializing 5709 properly for iSCSI. The chip_id field was not propagated to the CNIC driver.
Change: Fixed the chip_id field.
Impact: None.
v1.7.3c (February 09, 2008) ============================ Enhancements ------------ 1. Change: Updated 5708 and 5709 firmware to version 4.4.2.
Impact: All devices.
2. Change: Updated RV2P firmware to the latest. This may fix the jumbo frame issue.
Impact: All devices, especially jumbo frames on 5709 Bx.
3. Change: Modified CNIC interface in preparation for 57710 devices.
Impact: iSCSI.
v1.7.2f (February 04, 2008) ============================ Fixes ----- 1. Problem: Temporary workaround for one prototype 5709S mezz. card not working.
Cause: The driver was looking at the wrong shared memory location to identify the card.
Change: Fixed the code to check the correct BNX2_SHARED_HW_CFG_CONFIG location.
2. Change: Added temporary workaround for one prototype 5709S mezz. card. The workaround will be removed once newer cards are available.
Impact: 5709S.
v1.7.1e (January 14, 2008) ============================ Enhancements ------------ 1. Change: Updated 5709 firmware to 4.1.1 for IPv6 iSCSI support.
Impact: 5709.
2. Change: Updated 5708 RXP firmware to 4.1.1.
Impact: 5706/5708.
3. Change: Updated RV2P firmware for 5709.
Impact: 5709.
4. Change: Added IPv6 support to CNIC driver.
Impact: New BNX2I driver must be used with this new CNIC driver.
v1.7.1d.3 (February 7, 2008) ============================ Fixes ----- 1. Problem: 5706S continues to not link down occasionally on some blade systems.
Cause: In some cases, even turning off the tx current does not cause the link to go down.
Change: Link transition can be triggered based on the SYNC_FAILED bit in the AN_DEBUG register when all else fails.
Impact: 5706S.
v1.7.1d.1 (February 1, 2008) ============================ Fixes ----- 1. Problem: 5706S still not linking down occasionally on some blade systems when the switch blade is disconnected.
Cause: Occasionally, all the bits that we check will falsely indicate link up and trigger the parallel detect logic on this blade platform. Once in parallel detect mode with autoneg disabled, the driver will never detect link down.
Change: Disabled parallel detect on this platform by checking PCI sub IDs to identify the device.
Impact: Parallel detect not supported on this vendor device.
v1.7.1d (January 25, 2008) ============================ Fixes ----- 1. Problem: 5706S still not linking down on some blade systems when the switch blade is disconnected.
Cause: This is the same problem that was fixed in 1.7.0b. After switch module is removed, the SYNC_FAILED bit sometimes toggles low, and this causes the parallel detect logic in the driver to trigger and disable autoneg. Disabling autoneg causes false link to come up immediately.
Change: It seems that the RUDI_INVALID bit can be used to prevent the above from happening. Modified parallel detect code to additionally check the RUDI_INVALID bit and trigger only when the bit is cleared.
Impact: Parallel detect logic in 5706S.
v1.7.1c (December 27, 2007) ============================ Fixes ----- 1. Problem: Driver crashes when adding VLAN and bonding.
Cause: Bonding calls driver's VLAN function in interrupt context with lock held. We recently added a VLAN feature in 1.6.8b which requires chip reset when VLANs are added or removed. The reset will call vmalloc/vfree which must not be called in interrupt context.
Change: Reverted the VLAN feature for now. Will workaround it in the future.
Impact: 5709 only. This new VLAN feature is no longer available.
v1.7.1b (December 24, 2007) ============================ Fixes ----- 1. Problem: Driver crashes when using jumbo frames on 5709 A1.
Cause: RV2P firmware problem.
Change: Disabled jumbo page ring on 5709 Ax chips.
Impact: Jumbo receive page rings not supported on 5709 Ax.
2. Problem: CNIC driver prints "Failed waiting for ref count to go to zero" when unloading the driver. This is a minor cosmetic issue.
Cause: Minor bug in driver comparing ref_count to 1 instead of zero during exit.
Change: Fixed the code to check for ref_count == 0.
Impact: None.
v1.7.0b (December 12, 2007) ============================ Fixes ----- 1. Problem: (CQ33032) CPU utilization increases dramatically when TSO is enabled.
Cause: Driver is spending a lot of unnecessary time in TX handling code when TSO is enabled. This regression was introduced when the TX handling code was changed to match the RX handling code. The RX handling code was changed to fix a packet rot problem. When TSO is enabled, the tx index can stop at non-packet boundaries and the code will keep waiting until it gets to the next packet boundary.
Change: Fixed it to handle this condition properly.
Impact: None.
2. Problem: 5706S does not link down in some blade systems.
Cause: Hardware problem.
Change: Added workaround logic to check periodically and force a link down when the PHY reports SYNC status failed. This only works when autoneg is enabled.
Impact: 5706S.
v1.6.8e (December 10, 2007) ============================ Fixes ----- 1. Problem: When using jumbo MTU with large RX ring sizes, system will crash or the driver won't load.
Cause: Bug in driver where the page descriptor array was declared too small.
Change: Fixed the array size.
Impact: None.
2. Problem: CNIC driver won't compile on kernels without CONFIG_PCI_MSI.
Cause: Some code needs to be conditionally compiled only when CONFIG_PCI_MSI is set.
Change: Added #ifdef CONFIG_PCI_MSI where necessary.
Impact: None.
3. Change: Disabled iSCSI on 5709 until next release.
Impact: None.
v1.6.8d (December 07, 2007) ============================ Change: Reverted the 5706S workaround made in 1.6.8c because it was unreliable.
Cause: RV2P firmware incorrectly placed jumbo data into SKB.
Change: New RV2P firmware.
Impact: Jumbo frames on all hardware.
2. Problem: (CQ32817) ethtool loopback test fails. 3. Problem: (CQ32842) Chariot test fails.
Cause: RX buffer size too small to contain MTU-sized frame. This was introduced by the new Jumbo RX logic.
Change: Fixed RX buffer size logic.
Impact: Traffic on all hardware.
4. Problem: (CQ32862) Fails to compile on RH9u9.
Cause: Kernel API skb_fill_page_desc() backported to RH kernel causing duplicate definition.
Change: Adjusted compatibility code.
Impact: None.
5. Problem: (CQ32866) ISCSI driver fails to compile with 1.6.8b.
Cause: print_mac() multiply defined when bnx2.h is included in the bnx2i driver.
Change: Changed print_mac() to static inline.
Impact: None.
6. Problem: 5706S does not link down in some blade systems.
Cause: Hardware problem.
Change: Added workaround logic to check periodically.
Impact: 5706S.
Enhancements ------------ 1. Change: Added flow control logic on 5709.
Impact: 5709.
2. Change: Updated all firmware to 4.0.5.
Impact: All hardware.
v1.6.8b (November 28, 2007) ============================ Enhancements ------------ 1. Change: Added MSIX support for 5709 B0.
Impact: 5709 B0.
2. Change: Added multi-page buffer support for Receive Jumbo frames.
Impact: All chips. This feature is experimental at this point.
3. Change: Allow VLAN tags in receive packets when management firmware is enabled.
Impact: 5709 only. This feature is experimental and requires new boot code and UMP/IPMI code.
4. Change: Updated firmware to 4.0.3.
Impact: All chips.
v1.6.7b (October 16, 2007) ============================ Fixes ----- 1. Problem: (CQ31861) Remote copper PHY does not link up if WoL is enabled.
Cause: bnx2_set_power_state() assumes that only copper devices support WoL and proceeds to configure the copper PHY to 10/100 Mbps. This assumption is no longer valid after Serdes WoL support was added in 1.6.3c.
Change: Fixed the code to take check for Serdes and copper when setting up the PHY for WoL.
v1.6.5b (September 25, 2007) ============================ Fixes ----- 1. Problem: (CQ30086) 5709 A1 does not link up when connected to some Broadcom devices.
Cause: Early DAC wakeup workaround needed for 5709 A1.
Change: Added workaround.
Impact: None.
Enhancements ------------ 1. Change: Added CNIC support for iSCSI.
Cause: Link test and loopback test were not modified to support remote PHY.
Change: Added remote PHY support to link test and changed the code to skip PHY loopback on remote PHY since it's not supported.
Impact: None.
2. Problem: (CQ30625) ethtool speed settings are lost after ifdown.
Cause: The remote PHY settings stored in firmware is not the same as the driver's last setting.
Change: Modified the code to keep the driver's setting unless there's is change in the remote PHY media.
Impact: ethtool -s on remote PHY systems.
Enhancements ------------ 1. Change: Change ethtool's wol setting to NVRAM's default and add support for Serdes WoL if NVRAM supports it.
Impact: ethtool wol's default setting.
v1.6.3b (July 13, 2007) ======================= 1. Problem: Problems reading and writing flash on 5709.
Cause: Hardware changes in 5709.
Change: Rearranged current flash code to properly support 5709.
Impact: Changes will impact flash operations on 5706/5708/5709 devices.
2. Problem: (CQ30516) Management firmware version string disappears on 2nd modprobe of the driver.
Cause: The 2nd modprobe will program the device back to D0 from D3hot. This causes a reset and it will take some time before the management firmware information will be available.
Change: Added a proper wait loop to wait for the firmware information to be deposited in shared memory.
Impact: None.
v1.6.2f (July 3, 2007) ======================= 1. Problem: The fix for CQ29488 in the previous version is problematic and needs to be reverted.
Cause: Adding the netif_carrier_off() call before register_netdev() in bnx2_init_one() can cause problems if register_netdev() fails. netif_carrier_off() can queue a link watch event that can run later. If register_netdev() fails, the netdev structure will be freed and the link watch event may panic when it is scheduled to run.
Change: Moving the netif_carrier_off() to after register_netdev() also will not work as it can cause race conditions with the interrupt handler. So the best thing to do is to revert the earlier fix and not address the CQ29488 issue.
Impact: CQ29488 is not fixed.
v1.6.2e (July 3, 2007) ======================= Fixes: ------ 1. Problem: (CQ29528) Link does not come up using remote PHY (continued).
Cause: ifup script may be using mii-tool to obtain link status, and interfering with remote PHY firmware.
Change: Block mii-tool ioctl access when remote PHY firmware is present.
Impact: None.
2. Problem: (CQ29488) Driver reports link up in ethtool before the interface is brought up.
Cause: The netdevice structure's initial link setting is up and that gets reported directly by ethtool.
Change: Added netif_carrier_off() call in bnx2_init_one().
Impact: None.
v1.6.2d (June 22, 2007) ======================= Fixes: ------ 1. Problem: (CQ29528) Link does not come up using remote PHY.
Cause: The fix in 1.6.2b still has a problem. The copper or Serdes default link setting does not follow the correct port when the port is changed during chip reset.
Change: Fix the code to always refresh the port and link setting during chip reset.
Impact: None.
2. Problem: (CQ30181) Cannot compile on 2.4 kernels.
Cause: USEC_TO_SEC constant is not defined on older kernels.
Change: Added conditional #define for this constant on older kernels.
Impact: None.
Enhancements: ------------- 1. Change: Update 5709 firmware to 3.7.1.
Impact: 5709 devices.
v1.6.2b (June 21, 2007) ======================= Enhancements: ------------- 1. Change: Added management firmware version to ethtool -i.
Impact: None.
Fixes: ------ 1. Problem: (CQ29528) Link does not come up using remote PHY.
Cause: The driver is using the wrong port when setting up the remote PHY link.
Change: Fixed bug to always use the correct requested port or default port when setting remote PHY link.
Impact: None.
2. Problem: (CQ30028) Advertised Autoneg not set in ethtool.
Cause: Remote PHY code is not setting the flag which is for information only.
Change: Added code the set the flag for consistency.
Impact: None.
v1.6.1c (May 22, 2007) ===================== Enhancements: ------------- 1. Change: (CQ28907) Added support for setting copper and fibre speeds.
v1.5.10c (May 4 , 2007) ======================= Fixes: ------ 1. Problem: Extremely low TSO performance when destination has a smaller MSS than the source.
Cause: Packets smaller than MTU are not processed as TSO packets.
Change: Removed the SKB length check when doing TSO.
Impact: None.
v1.5.10b (May 1, 2007) ========================= Enhancements: ------------- 1. Change: Removed Remote PHY until next release.
Impact: No Remote PHY support.
2. Change: Added check for 2.5G capability before enabling 2.5G on 5709S.
Impact: None.
Fixes: ------ 1. Problem: (CQ28438) NETDEV WATCHDOG after OS boot.
Cause: The mailbox queue is halted after the OS reads config. register 0x94.
Change: Set MQ_CONFIG_HALT_DIS in register MQ_CONFIG on 5709 A0 and A1.
Impact: None.
v1.5.9b (April 20, 2007) ======================= Enhancements: ------------- 1. Change: Enhanced remote PHY support for 5708S.
Impact: None.
Fixes: ------ 1. Problem: (CQ29056) Driver does not compile on SLES 10 SP1 kernel.
v1.5.1b (November 15, 2006) =========================== Enhancement: ------------ 1. Change: Added support for 5709.
Impact: None.
v1.4.52c (March 07, 2007) ========================= Enhancement: ------------ 1. Change: Increase maximum receive ring size to 4080. The default is kept the same at 255.
Impact: None.
v1.4.51b (December 21, 2006) ============================ Fixes: ------ 1. Problem: (CQ27802) Cannot enable flow control in some cases.
Cause: In some cases when flow control is forced to on, the driver detects no changes in advertisement, and as a result, will not re-autoneg. Without the link change, flow control settings will not change.
Change: Added some code to setup flow control when no other PHY settings are made. This will ensure that flow control changes will take effect immediately.
Impact: None.
v1.4.50b (December 15, 2006) ============================ Fixes: ------ 1. Problem: (CQ27424) Panic when writing to nvram.
Cause: Bug in driver when an alignment buffer is used
Change: Fixed the bug so that the alignment buffer is freed with the correct pointer.
Impact: None.
v1.4.49b (December 13, 2006) ============================ Fixes: ------ 1. Problem: (CQ27459) Driver reports link down when link is up.
Cause: Hotplug scripts can cause bnx2_open() to be called immediately after bnx2_init_one() calls register_netdev(). The initial link state set after register_netdev() may overwrite the actual link state set by the link handler on SMP systems.
Change: Move all initial state setup code to before calling register_netdev().
Cause: Bug in determining tx ring space when the tx ring is completely full.
Change: Fixed the flawed logic in bnx2_tx_avail().
Impact: None.
2. Problem: (CQ27424) Buffer overflow when writing to nvram.
Cause: Bug in driver when the beginning NVRAM offset is not 4-byte aligned.
Change: Fixed the bug to allocate enough buffer space.
Impact: None.
3. Problem: (CQ27543) Loopback failed if MAC address is changed.
Cause: Driver uses permanent MAC address for loopback which may be different from a locally administered address.
Change: Fixed by alwaysing using the current MAC address in the netdevice structure.
Impact: None.
v1.4.47b (November 02, 2006) =========================== Fixes: ------ 1. Problem: (CQ25922) 5708S does not pass PHY loopback test on some blade servers.
Cause: It takes longer (about 100msec) to link up in some backplane environments when the Serdes is set to PHY loopback mode.
Change: Increase delay loop to up to 1 sec when waiting for link up after PHY loopback. Previous wait time was 100usec.
Impact: None.
v1.4.46b (October 30, 2006) =========================== Fixes: ------ 1. Problem: (CQ25916) Device does not receive packets when configured by the Xen bridge script and when IPMI is enabled.
Cause: Firmware does not forward packets to the host when the device is in promiscuous mode in some cases.
Change: Firmware change and driver change to enable the BNX2_RPM_SORT_USER0_PROM_VLAN bit when going into promiscuous mode.
Impact: None.
v1.4.45b (October 19, 2006) =========================== Enhancement: ------------ 1. Change: Added software parallel detection on 5708S to link at 1000Mbps or 2500Mbps automatically if the link partner is forced at 2500Mbps.
Impact: None.
2. Change: Added 2500Mbps forced speed setting. Setting it requires a future version of ethtool or custom apps.
Impact: None.
3. Change: Port driver to compile on 2.6.19 kernel.
Impact: None.
Fixes: ------ 1. Problem: Driver does not complile on 2.4 kernels.
Cause: TSO symbols not defined in 2.4 kernels.
Change: Added #ifdef for compatibility.
Impact: None.
2. Problem: MSI doesn't work on 5706 when the host bridge is AMD8132.
Cause: Compatibility issue.
Change: Added code to disable MSI when 5706 is on a systems with AMD8132.
Impact: 5706 cannot use MSI on such systems.
v1.4.44b (August 10, 2006) ========================== Fixes: ------ 1. Problem: A rare tx race window exists in the tx path.
Cause: CPU re-ordering can cause the tx queue to be stopped forever when the tx ring is full in a very rare condition. See ChangeLog for more details.
Change: Fixed the race condition with memory barriers. See ChangeLog for more details.
Impact: None.
Enhancement: ------------ 1. Change: Increase default rx ring size to 255 to prevent packet drops under heavy load.
Impact: Higher memory usage.
2. Change: Port driver to run on 2.6.18 kernel.
Impact: None.
v1.4.43b (June 26, 2006) ======================= Enhancement: ------------ 1. Change: (CQ25508) Use DRV_MSG_CODE_UNLOAD_LNK_DN message on 5708 B1 and older chips so that the link will turn off after ifdown.
Impact: None.
v1.4.42b (June 2, 2006) ======================= Fixes: ------ 1. Problem: (CQ22585) WoL cannot be enabled on 5708 B2.
Cause: Hardware limitation in previous 5708 versions required driver to always disable driver WoL on 5708.
Change: With the issue fixed in B2, the driver was changed to allow 5708 B2 and above to support driver WoL.
Impact: None.
2. Problem: (CQ21779) Driver does not report dropped receive packets.
Cause: Packets dropped by firmware are reported in a scratch pad location in memory separate from other counters.
Change: Added code to report this firmware counter.
Impact: None.
Enhancements: ------------- 1. Change: (CQ24690) Allow driver to be compiled for non-running kernels.
Impact: None.
v1.4.41b (May 17, 2006) ======================= Fixes: ------ 1. Problem: Driver writes wrong data to non-buffered flash.
Cause: Bug in driver causing the unchanged portion of the page to be corrupted.
Change: Fixed bug.
Impact: None.
v1.4.40b (April 17, 2006) ========================= Enhancements: ------------- 1. Change: Combine 2 small memory allocations into 1.
Impact: None.
2. Change: Separate tx consumer and producer entries into separate cache lines for better performance.
Impact: None.
3. Change: Compress firmware data to reduce driver size.
Impact: Driver now requires zib_inflate library which should be available on most vendor kernels.
v1.4.39b (Mar. 10, 2006) ======================= Fixes: ------ 1. Problem: (CQ23181) Driver loses track of link changes in some cases.
Cause: In some cases, the status block gets a link change indication that contradicts with the MII link status. This is due to transient link signals during link changes.
Change: Add coalesce_now at the end of link change interrupt to flush out the transient behavior.
Impact: None.
2. Problem: 5708 only supports 40-bit DMA addresses.
Cause: Limitation of the built-in PCIE-to-PCIX bridge.
Change: Add workaround code to make sure all DMA addresses are less than 40 bits.
Impact: Some minor impact on performance on some 64-bits systems. There should be practically no performance impact on i386 and x86_64 systems.
3. Problem: "Copyright" deprecated in RPM spec file.
Change: Changed to "License".
Impact: Should be none on the distributions that we support.
v1.4.38b (Feb. 10, 2006) ======================= Fixes: ------ 1. Problem: Setting rx ring size to 255 causes memory allocation errors.
Cause: Multiple bugs that do not handle the full ring properly.
Change: Fixed all bugs related to full ring handling and changed maximum ring size from 4080 to 1020 after discussion with Dave Miller.
Impact: Maximum rx ring size is now smaller.
2. Problem: Compile warnings and panic on IA64.
Cause: not included.
Change: Added include .
Impact: None.
v1.4.36b (Jan. 19, 2006) ======================= Version number update.
v1.3.36 (Jan. 17, 2006) ======================= Fixes: ------ 1. Problem: (CQ22827) bnx2 does not compile on 2.6.6 and earlier kernels.
Cause: Introduced bug while fixing CQ22666.
Change: Fix compatibility code.
Impact: None.
2. Problem: (CQ22823) bnx2 reports extra .5 at the end of firmware version string.
Change: Skip the last digit in the firmware version string.
Impact: None.
3. Problem: (CQ22585) WoL still does not work on 5708.
Cause: New WoL mechanism introduced in 1.3.34 has a flaw.
Change: Removed the workaround code and disabled WoL support on 5708. During shutdown and suspend, the driver will shutdown the device and WoL will be setup by the bootcode according to the nvram's out-of-box WoL setting.
Impact: 5708 will not support driver-initiated (ethtool-intiated) WoL.
v1.3.35 (Jan. 17, 2006) ======================= Fixes: ------ 1. Problem: (CQ22666) bnx2 driver does not compile on RHEL3 U7.
Cause: if_mii() back-ported to RHEL3 U7.
Change: Adjusted the compatibility code.
Impact: None.
2. Problem: (CQ22718) UMP connection is lost after enabling WoL.
Cause: FORCE LINK was mistakenly set during WoL setup.
Change: Do not set FORCE LINK.
Impact: None.
v1.3.34 (Jan. 13, 2006) ======================= Fixes: ------ 1. Problem: (CQ22585) WoL does not work on 5708.
Cause: Internal bridge not in proper PME state.
Change: Added new firmware message to allow bootcode to help set up WoL.
Impact: None.
Enhancements: ------------- 1. Change: Added compile option to include crc32 function for RH2.4 boot kernels.
Impact: None.
2. Change: Updated TSO firmware to handle ECN.
Impact: None.
v1.3.33 (Dec. 12, 2005) ======================= Enhancements: ------------- 1. Change: Increased firmware hand-shake timeout from 50 msec to 100 msec. Also changed the delay from busy-wait udelay to non-busy-wait msleep.
Impact: None.
2. Change: Added code to read nvram size from shared memory if available. Otherwise, the size will come from the flash table which only gives the smallest size for that type of flash.
Impact: None.
3. Change: Added workaround to issue 2 separate IOs for interrupt acknowledgement. The workaround is only used for INTA (non-MSI) interrupts.
Impact: Slightly higher overhead for INTA interrupts.
v1.3.32 (Dec. 01, 2005) ======================= Enhancements: ------------- 1. Change: Added PHY loopback to the loopback selftest.
2. Change: Enabled customized pre-emphasis and other serdes control settings on 5708S backplane devices. A special PHY register will be programmed according to the NVRAM value.
Impact: None.
3. Change: Modified Makefile to check for the source symbolic link in the kbuild environment.
Impact: None.
4. Change: Improved NAPI poll processing so that all events will be processed before interrupts are re-enabled. This will reduce the number of unnecessary interrupts.
Impact: None.
5. Change: Add support for ETHTOOL_GPERMADDR (from John Linville)
Impact: None.
Fixes: ------ 1. Problem: Bug in irq handler causing extra register read.
Cause: Bug in bnx2_interrupt() reading BNX2_PCICFG_MISC_STATUS register when it is not necessary.
Change: Fixed the logic bug and added prefetch of status block in msi handler.
Impact: None.
v1.3.25 (Aug. 22, 2005) ======================= Fixes: ------ 1. Problem: Ethtool register and memory tests fail on 5708.
Cause: Some code was not merged properly many versions ago.
Change: Merged in properly code.
Impact: None.
Enhancements: ------------- 1. Change: Slow down flash clock speeds
Impact: None.
2. Change: Code re-sync'ed with upstream driver.
Impact: None.
v1.3.24 (Aug. 16, 2005) ======================= Enhancements: ------------- 1. Change: Changed all spin_lock_irqsave locks to spin_lock_bh for better overall system performance. All code requiring spin_lock runs in BH or user context.
Impact: None.
2. Change: Removed atomic operations in the transmit fast path. Code should run a bit faster as atomic operations can be quite slow.
Impact: None.
v1.3.23 (Aug. 10, 2005) ======================= Enhancements: ------------- 1. Change: Added reporting of link speed to firmware.
Impact: None.
2. Change: Added shared memory base look-up.
Impact: None.
3. Change: Possible sparse fixes (from Peter Hagervall) - use C99 struct initializers - make a few arrays and structs static - remove a few uses of literal 0 as NULL pointer - use convenience function instead of cast+dereference in bnx2_ioctl() - remove superfluous casts to u8 * in calls to readl/writel
Impact: None.
4. Change: Updated documentation with the crc32 library requirement and other minor updates.
Impact: None.
v1.3.22 (July 25, 2005) ======================= Enhancements: ------------- 1. Change: Added check for default link speed setting in shared memory. This allows some blade servers that don't support autoneg to default to forced speed to speed up link-up time.
Impact: None.
2. Change: Changed timer code to speed up the timer after serdes autoneg. This speeds up the time for parallel detection when the link partner does not autoneg. After autoneg or parallel detction completes, timer goes back to normal 1 HZ interval. With the new scheme, link should be detected up using parallel detection in less than 0.7 seconds. Autoneg normally completes in 120 msec exchanging base pages and 3 next pages.
Impact: None.
v1.3.21 (July 21, 2005) ======================= Enhancements: ------------- 1. Change: Updated firmware to properly handle TSO packets with ECN bits set.
Impact: None.
2. Change: Updated to latest rxp firmware.
Impact: None.
3. Change: Added check for the 2.5G capability in shared memory.
Impact: None.
4. Change: Expanded nvram support for 5708.
Impact: None.
Fixes: ------ 1. Problem: (CQTO1511) Downing a team of bnx2 adapters causes hang.
Cause: Deadlock when the second adapter's close routine calls flush_scheduled_work() because the linkwatch_event is scheduled on the work queue when the first adapter is closed. The linkwatch_event will try to get the rtnl_lock which is already held by the bnx2_close routine.
Change: Fixed by not calling flush_scheduled_work(). Instead, use a flag to indicate work is pending and wait until the flag is cleared.
Impact: None.
2. Problem: (CQTO1439) ethtool -S on 5708 causes oops.
Cause: A pointer is not initialized if the device is 5708.
Change: Added proper initialization.
Impact: None.
3. Problem: Some error counters are mis-reporting.
Cause: The workaround for the hw errata is not applied properly on the chips with the errata.
Change: Added proper checks for the workaround.
Impact: None.
4. Problem: High BER on 5708 SerDes.
Cause: hardware errata.
Change: Added workaround for 5708 A0 and B0.
Impact: None.
v1.3.19 (May 27, 2005) ======================= Enhancements: ------------- 1. Change: Merged 5708 code with the latest 1.1.19.
Impact: None.
Fixes: ------ 1. Problem: (CQTO1260) 5708S does not link at 1000Mbps when forced. It links at 2500Mbps when connected back-to-back with another 5708S.
Cause: 2.5G bit is still turned on.
Change: Fixed by turning off 2.5G when the speed is forced.
Impact: None.
v1.1.19 (May 26, 2005) ======================= Enhancements: ------------- 1. Change: Made significant changes to merge into the kernel. Among them, consolidate all source files into bnx2.[ch] and bnx2_fw.h, change structure style register definitions to offset based.
Impact: None.
Fixes: ------ 1. Problem: Excessive stack usage.
Cause: Use of local variable array.
Change: Fix excessive stack usage in bnx2_alloc_bad_rbuf() by replacing local variable array with kmalloc array. Also changed function to return error code, and changed some of the callers to check for the return code.
Impact: None.
2. Problem: Bug in receive checksum.
Cause: Software bug.
Change: Fix bug in rx checksum by indicating CHECKSUM_UNNECESSARY only when the hw calculated checksum is 0xffff.
Impact: None.
3. Problem: Excessive busy loop.
Cause: Software bug.
Change: Replaced one excessive udelay of 15msec with msleep since the calling context is always process.
Impact: None.
4. Problem: Need to call flush_scheduled_work() and bnx2_netif_stop().
Cause: Bug in bnx2_close().
Change: Fix bug in bnx2_close() by calling flush_scheduled_work() since we are using a work queue in netdev watchdog. Also added bnx2_netif_stop() call in bnx2_close().
Impact: None.
5. Problem: Some symbols do not have bnx2 prefix and are not static.
Change: Add bnx2_ prefix to some remaining names and mark some remaining names static.
Impact: None.
v1.1.17 (Apr. 7, 2005) ======================= Fixes: ------ 1. Problem: Driver does not compile on 2.6.12 kernel.
Cause: pci_dev->slot_name has been deprecated.
Change: replaced with pci_name.
Impact: None. All kernels supported by bnx2 including 2.4.21-*EL have pci_name defined.
v1.1.16 (Mar. 16, 2005) ======================= Fixes: ------ 1. Problem: (CQTO936 & 1004) Tx carrier and rx_byte_errors reported during normal operations.
Cause: 5706 hardware errata on these 2 statistics counters.
Change: Modified driver to skip these 2 counters.
Impact: These 2 counters will always report 0 and not the true statistics.
v1.1.15 (Mar. 09, 2005) ======================= Enhancements: ------------- 1. Change: Added code to program proper phy settings for jumbo frames on copper and serdes devices.
Impact: None.
2. Change: Changed INTx ISR to handle a valid case where INTx arrives before status block update.
Impact: None.
3. Change: Added a separate ISR for MSI to handle subtle differences between INTx and MSI.
Impact: None.
v1.1.14 (Mar. 03, 2005) ====================== Fixes: ------ 1. Problem: netdump does not work on latest RH3EL errata kernel.
Cause: #define RED_HAT_LINUX_KERNEL removed from kernel include files, causing netdump poll function to be compiled wrong for RH kernels.
Change: Changed Makefile to workaround the problem.
Impact: None.
v1.1.12 (Feb. 25, 2005) ====================== Fixes: ------ 1. Problem: (CQTO1062) Driver allows ethtool to set illegal speed/duplex on fiber cards.
Cause: Missing checks for the case where autoneg is off.
Enhancements: ------------- 1. Change: The code to handle tx queue full condition was redone to properly handle all boundary and race conditions.
Impact: Minimum tx ring size is now MAX_SKB_FRAGS+1.
2. Change: Tx timeout code was changed to work queue context. This allows netif to be shutdown gracefully before chip reset.
Impact: None.
3. Change: Added memory barriers to ISR and NAPI poll for correctness.
Impact: None.
v1.1.8 (Feb. 01, 2005) ====================== Fixes: ------ 1. Problem: (CQTO969) No interupts on a system that does not support MSI.
Cause: On this system, the MSI generated in the MSI test terminates with Master Abort which is a fatal condition for the chip.
Change: A chip reset is added when MSI test fails to bring the chip back to normal operations again (in INTx mode).
Impact: None.
Enhancements: ------------- 1. Change: Removed register 0x84 from the ethtool register test. This is an interrupt control register that should not be touched to prevent unwanted interrupts.
Impact: None.
v1.1.7 (Jan. 28, 2005) ====================== Enhancements: ------------- 1. Change: Added interrupt test when MSI is enabled. If MSI test fails, driver will fallback to INTx mode.
Impact: None.
2. Change: Added test for certain chipsets where MSI is known to fail, and disable MSI unconditionally when such chipsets are found.
Impact: None.
3. Change: Removed support for 1000 Mbps half duplex.
Impact: 1000 Mbps half duplex will no longer work.
v1.1.6 (Jan. 26, 2005) ====================== Fixes: ------ 1. Problem: (CQTO940) MTU size not set properly when device is down.
Cause: bnx2_change_mtu only handled the "up" case.
Change: Simple fix to handle the "down" case as well.
Impact: None
2. Problem: (CQTO926) 5706S does not autoneg properly after the tx cable is pulled.
Cause: If the link partner is autonegotiating, autoneg will fail when the tx cable is pulled. The software will turn off autoneg seeing that the rx cable is still attached with SIGNAL_DETECT. When the tx cable is re-attached, autoneg is still off and the link partner will not establish link.
Change: Added code to poll another PHY register to check if configs are received when autoneg is disabled.
Impact: None
Enhancements: ------------- 1. Change: Added OEM product name strings.
Impact: None.
v1.1.5 (Jan. 25, 2005) ====================== Fixes: ------ 1. Problem: PCI-X bus speed may not be detected correctly by the driver, causing failure because certain register settings are done based on bus speed.
Cause: hardware problem.
Change: Use a different register to detect PCI-X speed.
Impact: None.
v1.1.4 (Jan. 17, 2005) ====================== Fixes: ------ 1. Problem: 5706S does not reliably detect link up or down.
Cause: hardware problem.
Change: Enabled hardware workaround which is effective in A2 and newer chips only.
Impact: None.
v1.1.3 (Jan. 13, 2005) ====================== Fixes: ------ 1. Problem: netdump does not work.
Cause: poll_controller routine does not work in NAPI mode.
Change: Fixed poll_controller routine for NAPI mode.
Impact: None.
Enhancements: ------------- 1. Change: Added the new mmiowb macro which is used mainly in NUMA machines to guarantee PCI ordering.
Impact: None.
2. Change: Added OEM product name strings.
Impact: None.
3. Change: Changed ONE_TDMA workaround on systems with P64H bridge to PING_PONG_DMA on all systems using PCI.
Impact: Better performance and better compatibility on all PCI systems.
4. Change: Added "disable_msi" parameter to allow disabling MSI.
Impact: None.
5. Change: Reduced default tx coalescing parameters for better tx only performance such as ttcp.
Impact: None.
6. Change: Changed NIC detection console message to display more information.
Impact: None.
7. Change: Cleaned up some Linux .h files that are not needed.
Impact: None.
8. Change: Cleaned up the nvram routines.
Impact: None.
v1.1.2 (Nov. 11, 2004) ====================== Fixes: ------ 1. Problem: Unable to load the driver on more than 2 or 3 devices.
Cause: Default register space is too big. System fails to map the register space on the 3rd or 4th device.
Change: Changed driver to map a smaller register space as the higher registers are not needed for standard operations.
Impact: None.
v1.1.1 (Nov. 9, 2004) ====================== Fixes: ------ 1. Problem: (CQTO656) One remaining ethtool parameter can be set out of range.
Cause: Wrong upper bounds in code.
Change: Fixed upper bound.
Impact: None.
1. Problem: 5706 A1 cannot be run on a PCI bus.
Cause: Hardware errata.
Change: Added workaround to detect 5706 A1 on PCI bus and abort.
Impact: Driver will not load 5706 A1 on PCI bus.
v1.1.0 (Oct. 29, 2004) ====================== Fixes: ------ 1. Problem: (CQTO663) No link on fiber NIC set to autoneg when the link partner is set to forced speed.
Cause: No code to handle this case.
Change: Added code to check SIGNAL DETECT when autoneg fails, and turn off autoneg when appropriate. Also added code to force a link down when speed settings are changed.
Impact: None.
2. Problem: (CQTO649) ifconfig up/down can cause system to hang on 2.6 kernels using mmconfig.
Cause: Dummy read in the kernel's pci_mmcfg_write routine may cause system to hang during D3hot -> D0 transition. The PLL may lose lock during the internal D0 transition chip reset and cause the dummy read to hang.
Change: The PLL problem will be fixed in A2. Meanwhile, the driver is changed to go into D3hot only if wol is enabled.
Impact: Minor impact in increased power consumption when the driver is shutdown with wol disabled.
3. Change: Changed to use pci_get_device as pci_find_device will be deprecated soon.
Impact: None.
4. Problem: (CQTO656) Some ethtool parameters can be set out of range.
Cause: Wrong upper bounds in code or documentation.
Change: Fixed code and documentation.
Impact: None.
v1.0.15 (Oct. 15, 2004) ====================== Fixes: ------ 1. Problem: (CQTO644) Data corruption when sending FTP traffic on Dell Precision 530MT.
Cause: PCI bridge errata.
Change: Added code to enable ONE_TDMA workaround when P64H PCI bridge is detected.
Impact: Slower tx performance on systems using P64H bridge.
2. Problem: (CQTO643) Driver allows MTU to be set up to 9004.
Cause: Driver used the wrong upper bound limit.
Change: Fixed the upper bound.
Impact: None.
3. Problem: Driver does not support forced speed on 5706S.
Cause: Missing software logic.
Change: Added code to support forced 1000 Full and Half duplex.
Impact: None.
4. Change: Added workaround to disable PERR generation on 5706 A1 when it is in PCI 64-bit slot.
Impact: None.
v1.0.14 (Oct. 05, 2004) ====================== Fixes: ------ 1. Problem: Driver load/unload hangs on some machines.
Cause: Transition delay required during D3hot -> D0 transition.
Change: Added necessary delay.
Impact: None.
v1.0.12 (Oct. 04, 2004) ====================== Fixes: ------ 1. Problem: (CQTO609) New flow control parameter does not take effect until ifdown/ifup or link down/up.
Cause: New flow control settings are only configured during link up. The driver did not check flow control advertisement changes and therefore no re-negotiation and no link down.
Change: Fixed logic so that link will always go down whenever there is a change a flow control advertisement.
Impact: None.
2. Problem: (CQTO612) VLAN packet reception not working.
Cause: VLAN #define not setup properly.
Change: Fixed #define for VLAN.
Impact: None.
3. Problem: (CQTO628) WoL not functioning correctly.
Cause: Multiple problems in the WoL code.
Change: Fixed by: 1. using sort mode. 2. setting up mac address correctly.
Impact: None.
Enhancements: ------------- 1. Change: Added support for non-dword and non-aligned write access to eeprom, allowing ethtool -E to work.
Impact: None.
v1.0.11 (Sep. 24, 2004) ====================== Fixes: ------ 1. Problem: (CQTO600) Kernel panic when attempting to ftp on Fedora kernel.
Cause: skbuffs are 4-byte aligned on Fedora, causing the rx headers to be misaligned. skbuffs are 16-byte aligned on other standard kernels.
Change: Removed any assumptions about skbuff alignment and added code to align all rx skbuffs to 8-byte boundaries.
Impact: None.
Enhancements: ------------- 1. Change: Added netif_carrier_off to Driver init code so that the initial link state is off.
Impact: None.
v1.0.10 (Sep. 23, 2004) ====================== Fixes: ------ 1. Problem: (CQTO599) Driver fails to compile on RH 3.0ES.
Cause: Bug in poll_bcm5706 where bp is referenced without being defined.
Change: Fixed the minor bug.
Impact: None.
v1.0.9 (Sep. 23, 2004) ====================== Fixes: ------ 1. Problem: Jumbo frames not working reliably.
Cause: Bug in bcm5706_reuse_rx_skb.
Change: Fixed the bug so that the host address is properly copied from one BD to the other.
Impact: None.
Enhancements: ------------- 1. Change: Change the locking scheme for more reliable open/close/ioctl operations where the spinlock is needed.
Impact: None.
2. Change: Added minimum MTU size check for MTU changes.
Impact: None.
v1.0.8 (Sep. 20, 2004) ====================== Fixes: ------ 1. Problem: (CQTO561) Kernel panic on RH30EL after repeated driver load/unload.
Cause: Occasionally, the system is unable to map device registers, causing subsequent register access to fail.
Change: Added check for the return value from ioremap, and exit gracefully if it fails.
Impact: None.
2. Problem: (CQTO574) NETDEV WATCHDOG when running 5706 A1 on PCIX 133MHz slot.
Cause: Some hw register setup required for 133 Mhz.
Change: Added the register setup code.
Impact: None.
3. Problem: (CQTO468) Link does not go down after changing from 10Mbps full (forced) to 10Mbps half (forced) and vice versa when the link partner is also using forced speed.
Cause: Delay not long enough for the link to go down.
Change: Not practical to increase delay as a very long delay is needed for the link to go down. Added code to record the proper link speed and duplex when speed is forced so that ethtool will return the proper speed without the link going down. Note that the link will go down if the link partner has autoneg turned on, ensuring that the link partner will see the link change.
Impact: None.
Enhancements: ------------- 1. Change: Added power management and WOL during device close. This will allow WOL to work after Linux shutdown.
Impact: None.
2. Change: Changed driver so that ethtool will report invalid speed after ifdown.
Impact: None.
3. Change: Updated tpatfw.h
Impact: None.
v1.0.7 (Sep. 14, 2004) ====================== Fixes: ------ 1. Problem: (CQTO523) 5706 A1 hangs after a thousand iterations of load/ifup/ifdown/unload.
Cause: The driver may be servicing an interrupt within 15 msec of chip reset, causing the chip to hang. The problem was aggravated by the timer mode coalescing which created an excessive number of interrupts (hardware problem).
The Driver may also occasionally see the wrong firmware signature that will cause it to abort.
Change: Added synchronization to make sure all pending interrupts are serviced before resetting the chip. Also changed to collect mode coalescing. The firmware signature problem will be fixed in boot code.
Impact: The use of collect mode coalescing may affect performance.
2. Problem: (CQTO558) Unable to load driver on some early 2.6 kernels.
Cause: pci_dma_sync_single_for_* routines not defined on early 2.6 kernels.
Change: Added compatibility defines for earlier kernels.
Change: Added 15 msec delay after chip reset for A1.
Impact: None.
2. Problem: (CQTO468) Link does not go down after changing from 10Mbps full (forced) to 10Mbps half (forced) and vice versa.
Cause: Not enough delay after forcing link down.
Change: Added proper delay for link to go down.
Impact: None.
v1.0.5 (Sep. 02, 2004) ====================== Enhancements: ------------- 1. Change: Added support for ethtool -c, ethtool -C, ethtool -p, and firmware version for ethtool -i.
Impact: None.
Fixes: ------ 1. Problem: 5706C not advertising 1000 half duplex.
Cause: 1000 full duplex overwrites 1000 half duplex.
Change: Fixed the bug so that the 2 bits are or'ed together.
Impact: None.
2. Problem: ethtool -A does not change the flow control settings in all cases.
Cause: Flow control settings not zeroed out before setting new values.
Change: Minor bug fix to zero out the value.
Impact: None.
v1.0.4 (Sep. 02, 2004) ====================== Fixes: ------ 1. Problem: (CQTO504) Multiple NFS transfers will hang some connections.
Cause: Driver discards some receive packets when the error status is non-zero.
Change: Changed the driver to only discard receive packets when the defined error bits in the error status are non-zero.
Impact: None.
v1.0.3 (Sep. 01, 2004) ====================== Enhancements: ------------- 1. Problem: Driver does not support ethtool -t self test and ethtool -S statistics.
Change: Added ethtool self test and statistics.
Impact: None.
Fixes: ------ 1. Problem: (CQTO478) Kernel still panics when transmitting certain files using NFS after many iterations
Cause: Tx DMA stalls on certain UDP packets, causing NFS client to stall.
Change: More fixes made in firmware.
Impact: None.
v1.0.2 (Aug. 26, 2004) ====================== Enhancements: ------------- 1. Problem: Driver does not work on big endian machines.
Change: Ported and tested on SPARC64 machine.
Impact: None.
Fixes: ------ 1. Problem: (CQTO478) Kernel panics when transmitting certain files using NFS.
Cause: Tx DMA stalls on certain UDP packets, causing NFS client to stall.
Change: Fixed in firmware.
Impact: None.
2. Problem: (CQTO469) Unable to modify flow control parameters
Cause: Did not call setup_phy after the parameters are changed.
Change: Added call to setup_phy after parameters are changed.
Impact: None.
3. Problem: (CQTO467) 5706 does not autonegotiate properly after changing settings with ethtool.
Cause: This is an ethtool limitation as the proper advertising parameters are not passed to the driver properly.
Change: Implemented a new scheme to work around the problem to allow users to specify full autoneg, single speed autoneg, and fixed speed.
Impact: None.
4. Problem: ethtool -e does not work.
Cause: Various bugs in the nvram routines.
Change: Fixed and tested nvram routines on little endian and big endian machines.
Impact: None.
v1.0.1 (Aug. 18, 2004) ====================== Fixes: ------ 1. Problem: (CQTO459) 5706 NIC does not get link.
Cause: Boot code timing out in WAIT2 state before driver is ready.
Change: Moved the WAIT2 state ahead in the driver reset sequence as a temporary workaround until it is fixed in boot code.
Impact: None.
2. Problem: (CQTO463) Kernel panics when loading the driver on RH30EL (2.4.21-4.EL)
Cause: Older kernel used different API to allocate and register netdev.
Change: Added older APIs to be used on older kernels.
============================ R E L E A S E N O T E S ============================
Broadcom BCM57710/BCM57711/BCM57711E/BCM57712 10 GigE bnx2x driver For Linux
Broadcom BCM57800/BCM57810/BCM57811/BCM57840 10/20 GigE bnx2x driver For Linux
Copyright (c) 2007-2013 Broadcom Corporation All rights reserved.
Version 1.710.10 (Mar 04, 2014) =============================== Internal FW 7.10.7
Fixes: ------ 1. Problem: CQ72866 - get driver version fails on FCoE interfaces.
Change: Wait for MFW to finish handling of buffers.
Introduced: Day 1.
Relevance: NPAR.
2. Problem: ptp4l app may fail with error: interface does not support requested timestamping mode even though timesync is enabled in kernel and driver.
Change: Compile ethtool timesync related code based on existence of ts_info callback in ethtool_ops structure and not based on kernel version.
Introduced: 1.710.07.
Relevance: Kernel ptp support required in addition to ethtool support for timesync info.
3. Problem: CQ73099 - driver does not compile against RHEL7 SS7.
Enhancements: ------------- 1. Request: Change default behaviour of Tx Switching - PFs are configured for Tx switching when their VFs are enabled (i.e., when VFs are about to appear on the pci bus).
3. Request: CQ68228 - SRIOV - support RSC for windows VMs.
Version 1.710.05 (Jan 05, 2014) =============================== Internal FW 7.10.3
Fixes: ------ 1. Problem: Theoretical bug where AFEX sw code can corrupt dmae commands.
Change: Fixed types of slowpath structs to prevent overflow.
Introduced: Day 1.
Relevance: AFEX.
2. Problem: RSS not configured properly for Windows VF over KVM.
Change: Flags parameter sent to rss config function wasn't initialized properly.
Introduced: 1.78.14.
Relevance: SRIOV - windows VM over linux.
3. Problem: 10M-FD was advertised in case 10M-HD was requested for BCM54618SE.
Change: Advertise 10M-FD only when it is requested.
Introduced: 1.78.23.
Relevance: BCM54618SE.
4. Problem: CQ72188 - 578xx fails to link with KinnexA SFP+T (1GBT) module. This fix handles only the link issue, assuming the SFP EEPROM is accessible, which is another aspect of the problem, handled in MFW 7.10.04.
Change: Reset TX_EN when RJ45 SFP module is detected.
Introduced: T7.8.
Relevance: SFP-RJ45 module.
5. Problem: VF with a vlan set by HV receives untagged packets.
Change: Fix deletion of previous vlan filters by HV.
Introduced: 1.78.00.
Relevance: SR-IOV.
Enhancements: ------------- 1. Request: CQ72287 - Add support for Luma SFP+ (1GBT RJ45) module. This module lacks the connector type, so added this unspecified type while checking if the module compliance with 10G ethernet or not.
Version 1.710.04 (Dec 17, 2013) =============================== Internal FW 7.10.3
Fixes: ------ 1. Problem: BD mode is not functional.
Change: Fixes in configuration.
Introduced: 1.710.02.
Relevance: BD MF mode.
2. Problem: Incorrect 8073 link partner detection for KR2 work-around.
Change: Fix 8073 detection.
Introduced: 1.78.1.
Relevance: 57840-KR2.
3. Problem: CQ71792 - VF fails to receive multicast traffic.
Change: Fix the VF-PF Multicast filters configuration.
Introduced: Day 1.
Relevance: SR-IOV.
4. Problem: Configuration space configured with one MSI-X message too much for VFs supporting RSS. Can cause over-allocation of MSI-X messages for VFs.
Change: Fix configuration space setting configured by PF for its VFs.
Introduced: Day 1.
Relevance: SR-IOV.
5. Problem: CQ72145 - No ping in NPAR 1.5 mode.
Change: Avoid configuring device to illegal multi-function mode.
Introduced: 1.710.02.
Relevance: NPAR 1.5.
Version 1.710.03 (Dec 05, 2013) =============================== Internal FW 7.10.3
Fixes: ------ 1. Problem: CQ71571 - management logs don't show number of VFs.
Change: Add missing field in data passed to management FW.
Introduced: Day 1.
Relevance: OEM specific query data flow.
2. Problem: CQ71692 - MCP assert during DCB configuration flow.
Change: Clear rtnl work queue during unload.
Introduced: 1.78.50.
Relevance: 57712 and 578xx with DCB enabled.
3. Problem: CQ71353 - KR device cannot get link on all 4 ports when connected to a 1G (54680E) IOM.
Change: Force CL48 sync_status LOW to prevent Warpcore from getting stuck in CL73 parallel detect loop while link partner is sending CL37 pages on all lanes.
Introduced: Day 1.
Relevance: 578xx-KR.
4. Problem: BZ920329,1022730 (RH) - PCIe AER is not configured properly.
Change: Add missing OS calls to enable error reporting and perform cleanup after an error is handled.
2. Problem: CQ70554/CQ71071 - Failed to acquire 1G link over CL37 against 1Gb switch. This issue happens when the device is in KR mode, and the switch advertises only 1G link speed over CL37.
Change: To solve this, the auto-detect mode was enabled in the Warpcore allowing it to select the higher speed protocol between 10G-KR (over CL73), or go down to 1G over CL73 when there's indication for it.
Introduced: Day 1.
Relevance: 578xx-KR.
3. Problem: When removing bnx2x while there is a mix of passed through and non passed through VFs, the next bnx2x probe will hang when VF devices are probed. Older OS (e.g. RH < 6.3 and SLES < 11SP3) have this problem even w/o passedthrough VFs.
Change: Disable VF access at bnx2x remove, so when VFs are probed again they can't access the device.
Introduced: 1.78.00.
Relevance: SR-IOV.
4. Problem: CQ68627 - Incorrect port value is displayed for specific Passive DAC (Direct Attached Cable) with missing Passive indication in it's EEPROM.
Change: In case there's a DAC indication, but without neither Passive or Active indication (In SFP+ Cable Technology field), treat this cable as a Passive DAC.
Introduced: Day 1.
Relevance: 578xx-SFP.
5. Problem: CFC attention during load of VF.
Change: Validate status of bulletin board (implicitly) during load and prevent loading of VF if it's invalid.
Introduced: 1.78.00.
Relevance: SR-IOV.
6. Problem: CQ71456 - SR-IOV failed to work on RHEL5.10.
Change: Fixed ARI compatibility issues for RHEL5.x.
Introduced: 1.78.13.
Relevance: SR-IOV, RHEL5.x.
7. Problem: CQ71570 - Link is reported to be up when SFP+ module is plugged in without cable. This occurs with specific module types which may generate temporary TX_FAULT indication.
Change: Avoid changing any link parameters when checking TX_FAULT indication when physical link is down.
Change: Change printing scheme, as flow is possible in MF UNDI.
Introduced: 1.78.24.
Relevance: Multi-function UNDI.
9. Problem: CQ71629 - self-test, mtu change, other ethtool operations cause 'timeout waiting for state X' message to appear, and device may be not functional.
Change: Do not release rtnl lock in between DCB re-configuration.
Introduced: 1.78.50.
Relevance: 57712/578xx with DCB enabled.
10. Problem: CQ71584 - VFs with different vlans configured by HyperVisor are able to ping.
Change: When HV configures vlan to a VF configure vlan stripping to that specific vlan rather than all vlans.
Introduced: 1.78.09.
Relevance: SR-IOV.
11. Problem: CQ71749 - Recovery failed while system running netperf with parity error generated manually.
Change: Do not mark device as unusable if DMAE engine returns error.
Introduced: 1.74.16.
Relevance: All.
Enhancements: ------------- 1. Request: In multi function scenarios with UNDI, re-probe interfaces (on new kernels) until UNDI is unloaded.
2. Request: Initial support in new switch dependent MF mode.
Version 1.710.01 (Oct 10, 2013) =============================== Internal FW 7.8.52
Fixes: ------ 1. Problem: When compiled with stop-on-error and Tx switching is enabled, source MAC on sent packets is all zeroes.
Change: Set the parsing buffer descriptor with the source MAC.
Change: Protect statistics DMAE flow with global DMAE lock.
Introduced: 1.78.00.
Relevance: SR-IOV.
3. Problem: Driver sets NETIF_F_HIGHMEM only if setting 64-bit DMA mask succeeded. This is wrong, as this flag indicates whether the device/driver can handle skbs located in high memory, and the conditional setting may result with unnecessary memory copies.
Change: Set NETIF_F_HIGHMEM in dev_featrues unconditionally.
Introduced: Day 1.
Relevance: All.
Version 1.78.75 (Oct 08, 2013) ============================== Internal FW 7.8.52
Fixes: ------ 1. Problem: CQ71240 - Compilation fails on SLES11SP3.
Change: Fixed Makefile.
Introduced: 1.78.57.
Relevance: All.
2. Problem: CQ71012 - iscsi login fails.
Change: Allocate enough ilt resources to timers block to accomodate all L2 and cnic connections.
Introduced: 1.78.52.
Relevance: Storage scenarios.
Enhancements: ------------- 1. Network interface (PFs & VFs) expose their physical port ID on new kernels.
Version 1.78.57 (Oct 01, 2013) ============================== Internal FW 7.8.52
Change: Remove pretending mechanism from the flow.
Introduced: 1.78.02.
Relevance: All.
2. Problem: Warning 'vmalloc: allocation failure: 0 bytes' and bnx2x dump stack are seen in dmesg.
Change: Don't attempt to allocate regs dump buffer for VFs (as they don't have the regs dump feature and the buffer length is 0 which triggers the warning).
Introduced: 1.78.56.
Relevance: SR-IOV.
3. Problem: Page-fault during fw_dump may happen.
Change: Validate trace buffer address received from MCP.
Introduced: Day one.
Relevance: All.
4. Problem: Wrong coalescing value is configured with ethtool -c in HW.
Change: Ignore AEU indication of MCP parity when parities are masked.
Introduced: Day one.
Relevance: All.
2. Problem: CNIC misbehaves after bnx2x failures during load.
Change: Correct return values on bnx2x_load_cnic() failures.
Introduced: 1.74.01.
Relevance: CNIC.
3. Problem: CQ70833 SRIOV - Could not load vfs on pfs.
Change: Use Path relative PF func rather than device absolute when reading IGU mapping memory.
Introduced: 1.78.52.
Relevance: SR-IOV on engine 1.
4. Problem: CQ70904 UIO calculates doorbell address according to old doorbell configuration.
Change: Change cid designated for UIO to be such that cnic can reverse engineer a value in API so that UIO will use correct address.
Introduced: 1.78.52.
Relevance: CNIC.
5. Problem: Supported but unhandled messages on VF PF channel lead to VF lock never being released.
Change: Rlease VF lock in this case.
Introduced: 1.78.00.
Relevance: VF-PF version interoperability.
Version 1.78.54 (Sep 09, 2013) ============================== Internal FW 7.8.51
Fixes: ------ 1. Problem: Driver does not compile on SLES11 SP3.
Change: Fix compatibility macros.
Introduced: 1.78.53.
Relevance: SLES11 SP3.
Version 1.78.53 (Sep 02, 2013) ============================== Internal FW 7.8.51
Fixes: ------ 1. Problem: Missing "than" in the readme file at "...the driver requires more *than* 256 kB of virtual memory...".
Change: Added the missing "than".
Introduced: Day one.
2. Problem: In multifunction mode with SR-IOV enabled, function start fails on second function in engine.
Change: fix status block allocation between VFs and PFs.
Introduced: 1.78.52.
Relevance: Multifunction with SR-IOV.
3. Problem: CQ70398 - chips stall in a very rare case under heavy traffic with TPA/GRO enabled.
Change: (FW) Fix the relevant firmware flow.
Introduced: 1.50.00 (FW 5.0.0).
Relevance: All.
Enhancements: ------------- 1. Request: PCI link speed & width printed values are that of the minimum along the path from the root port.
Version 1.78.52 (Aug 27, 2013) ============================== Internal FW 7.8.50
Fixes: ------ 1. Problem: csum for IPv6 with extensions is not calculated properly on TX.
Change: Notify FW about extensions in non-LSO flow.
Introduced: Day one.
Relevance: 57712/578xx.
2. Problem: CQ70358 - The kernel log contains an alarming error message: "drv_pulse != mcp_pulse".
Change: The trigger for this message was too strict and there is really nothing wrong in this scenario - so the threshold was changed to allow some tolerance.
Introduced: Day one.
Enhancements: ------------- 1. Request: Support VF multiqueue, receive/transmit side scaling.
Version 1.78.51 (Aug 12, 2013) ============================== Internal FW 7.8.50
Fixes: ------ 1. Problem: CQ69690 - getfeatcfg() returns ETS/Priority Tagging/PFC as operational when DCBX is disabled on the switch side.
Change: Take remote error into account when returning the answer.
Change: Release VF stats memory buffer when unloading.
Introduced: 1.78.00.
Relevance: SR-IOV.
Version 1.78.50 (Aug 01, 2013) ============================== Internal FW 7.8.21
Fixes: ------ 1. Problem: CQ70272 - panic during release after queue allocation failure.
Change: Prevent double memory freeing of tpa information.
Introduced: 1.74.02.
Relevance: Low memory conditions.
2. Problem: CQ67151 - Windows VM causing linux HyperVisor to log errors.
Change: Fix broken "vlan config list" flow to complete successfully rather than enter error flow.
Introduced: 1.78.00.
Relevance: SR-IOV.
3. Problem: CQ69693 - VLAN Discovery w/o priority or no outgoing traffic after DCBX negotiation.
Change: Change context for DCB handling to make HW configuration robust for races.
Introduced: 1.78.00.
Relevance: 57712/578xx with CNIC.
4. Problem: CQ70292 - SKB allocation may needlessly allocate memory.
Change: Revert changes in Rx buffer allocation for older releases.
Introduced: 1.78.06.
Relevance: Linux OS prior to 3.3.
5. Problem: CQ70272 - panic during release after queue allocation failure.
Change: Prevent release of tpa information; Re-arrange order of fastpath movement due to change in cnic fastpath indices.
Introduced: 1.74.02.
Relevance: Low memory conditions.
6. Problem: Possible FW assert in statistics flow.
Change: Add protection to different statistics flows.
Introduced: Day one.
Relevance: All.
Enhancements: ------------- 1. Request: Add FW version to assert printout to ease parsing. Refactor assert printing code.
Version 1.78.25 (Jul 21, 2013) ============================== Internal FW 7.8.21
Fixes: ------ 1. Problem: Using iproute2 sriov ndos on non SR-IOV capable PFs hangs the driver.
Change: Improve sanity checking in ndos.
Introduced: 1.78.09.
Relevance: All.
2. Problem: When using Multi-function preboot, logs claims probe is aborted.
Change: Change driver prints.
Introduced: 1.72.13.
Relevance: Multi-function preboot driver.
3. Problem: CQ67403 - VF stats are not working.
Change: Modify the "stats started" mechanism to allow for VFs.
Introduced: 7.8.21.
Relevance: SR-IOV.
Version 1.78.24 (Jul 11, 2013) ============================== Internal FW 7.8.21
Fixes: ------ 1. Problem: CQ69938/CQ69471 - VF PF channel data is read from wrong address when the first PF to be loaded has zero VFs.
Change: Configure DMAE block to SR-IOV mode based on the SR-IOV capability existence and not on whether driver internal SR-IOV data structures have been allocated.
Introduced: 1.78.00.
Relevance: SR-IOV in Multifunction with mixed PFs with and without VFs.
2. Problem: Pure performance in TSO tunnelling scenarios.
Change: fix csum calculation.
Introduced: 1.78.22.
Relevance: tso+tunnelling.
Enhancements: ------------- 1. Request: Initial support for Multi-Function preboot driver support.
Version 1.78.23 (Jul 02, 2013) ============================== Internal FW 7.8.21
Fixes: ------ 1. Problem: CQ69561/CQ69564/CQ69542 - link flap occur when link speed lower than 10G due to changes entered for CQ68365 to avoid intermittent link when speed changes between 10Mbps, 100Mpbs and 1000Mbps.
Change: Revert change for CQ68365 for now.
Introduced: 1.78.8.
Relevance: 578xx.
2. Problem: CQ69770 - 10Mb/100Mb Half-Duplex are always advertised when only 10Mb/100Mb Full-Duplex configured.
Change: Select 10/100Mb half-duplex based of the speed capability mask.
Introduced: Day 1.
Relevance: 848xx/54618se.
3. Problem: Division by zero in dcbx update flow.
Change: Protect specific flow.
Introduced: 1.78.21.
Relevance: 57712/578xx with DCBX.
4. Problem: CQ67928 - Dropless_fc is not always functional.
Change: Add feature initialization in link related flows.
Introduced: 1.72.00.
Relevance: All.
Version 1.78.22 (Jun 27, 2013) ============================== Internal FW 7.8.21
Fixes: ------ 1. Problem: CQ69617 - PTE write access might occur in MF_ALLOWED mode when IOMMU is active.
Change: Added rmmod HSI indicating to MFW to stop running OEM specific data query flows which might trigger this failure in IOMMU mode.
Introduced: Day one.
Relevance: Fix requires MFW 7.8.15 and latter.
2. Problem: RH5.1 gets stuck upon driver insmod.
Change: Set the PCI power state to D0 during probe.
Introduced: 1.78.21.
Relevance: OS version < 2.6.21 (vanilla), old distros.
3. Problem: CQ68638 - system hangs during rmmod with VF assigned to VM on kernels under 3.10.
Change: Add missing initialization.
Introduced: 1.78.20.
Relevance: SR-IOV.
4. Problem: CQ69436 - System panics during shutdown.
Change: uses `dev_close()' during shutdown flow to notify CNIC the device closes.
Introduced: 1.78.19.
Relevance: CNIC.
Version 1.78.21 (Jun 20, 2013) ============================== Internal FW 7.8.21
Fixes: ------ 1. Problem: CQ69421 - ETS does not work in SD-MF mode.
Change: Invoke fairness update from DCBX flow.
Introduced: Day one.
Relevance: SD-MF mode + ETS enabled.
2. Problem: CQ69086 - FW assert during load/unload test.
Change: Prevent statistics update procedure from starting before initialization is completed.
Introduced: Day one.
Relevance: All.
3. Problem: CQ69569 - Loopback test failed on 1G optic modules if required speed is forced to 10G.
Change: Don't check optic module attributes in internal loopback mode.
Introduced: Day one.
Relevance: All.
Version 1.78.20 (Jun 03, 2013) ============================== Internal FW 7.8.21
Fixes: ------ 1. Problem: VF link shows as 'none'.
Change: Instead of sampling the PF speed at VF probe (when the link may have still been down) rely on PF capabilities to report VF link.
Introduced: 1.78.18.
Relevance: SR-IOV.
2. Problem: CQ68638 - system hangs during rmmod with VF assigned to VM.
Change: Protect rmmod flow from calling pci_disable_sriov.
Introduced: 1.78.00.
Relevance: SR-IOV.
3. Problem: Nvram is accessible via ethtool when it shouldn't be.
Change: Correct logic test of PCIe Power management current state when accessing nvram.
Introduced: 1.78.00.
Relevance: All.
4. Problem: Attempt to confgure VF mac/vlan via iproute2 suite while PF is down results in null pointer dereference.
Change: Validate that PF is up in VF ndos.
Introduced: 1.78.09.
Relevance: SR-IOV.
5. Problem: BZ819610 (SLES) - low throughput is achieved on GSO.
Change: (v2) Request FW to perform IP checksum on GSO packets.
Introduced: 1.78.13.
Relevance: 57710/57711.
6. Problem: CQ68022 - FW dump is observed during loading PF with large number of VFs.
Change: Improve timing during VFs initialization.
Introduced: 1.78.00.
Relevance: SR-IOV.
7. Problem: CQ65909 - ethtool -t generates warnings in syslog but passes.
Change: Hide debug warning messages under msglvl NETIF_MSG_HW.
Introduced: Day 1.
Relevance: All.
Version 1.78.19 (May 23, 2013) ============================== Internal FW 7.8.21
Fixes: ------ 1. Problem: CQ68995 - Shutdown is stuck on a machine booted from SAN.
Change: During PCI shutdown callback, don't try to close the netdevice via the regular mechanisms (i.e., _netdev() calls).
Introduced: 1.78.17.
Relevance: Boot from SAN.
2. Problem: CQ69086 - MC Assert immediately after device comes up.
Change: Prevent sending second STATS query by initialization fw memory.
Introduced: Day one.
Relevance: All.
3. Problem: BZ819610 (SLES) - low throughput is achieved on GSO.
Change: Request FW to perform IP checksum on GSO packets.
Introduced: 1.78.13.
Relevance: 57710/57711.
4. Problem: For 57712 HW driver prints wrong value for PCI link speed.
Change: Fix pci link speed decoding.
Introduced: 1.60.00.
Relevance: 57712.
5. Problem: For 57840 HW driver prints wrong value for PCI link speed.
Change: Fix pci link speed decoding.
Introduced: 1.70.00.
Relevance: 57840 on Gen3.
6. Problem: CQ69216 - failed to configure VF mac via PF using `ip link'.
Change: Fix compatibility for VF ndos.
Introduced: Day 1.
Relevance: SR-IOV, Citrix Xen.
7. Problem: CQ68489 - After windows 8 inbox driver fails to load over KVM hypervisor (they are not compatible) T7.8 windows driver fails to load (supposed to be able to).
Change: When unknown TLV arrives on te VF-PF channel, ack the FW to allow other TLVs of this VF to pass.
Introduced: Day 1.
Relevance: SR-IOV.
8. Problem: Low throughput in tunneling ipv6 over ipv4.
Change: Fix HW configuration.
Introduced: 1.78.07.
Relevance: 57712/578xx tunneling.
Enhancements: ------------- 1. Request: When GRO setting changes while LRO is enabled, don't reload as LRO takes precedence.
Version 1.78.18 (May 12, 2013) ============================== Internal FW 7.8.21
Fixes: ------ 1. Problem: CQ68642 - iproute2 callbacks not working in RH64.
Change: Add iproute2 callbacks starting from RH61 and SUSE11SP2.
Introduced: 1.78.09.
Relevance: 57712/578xx SRIOV.
2. Problem: CQ68872 - Kernel Panic in multicast configuration flow.
Change: All flows changing multicast configuration now take the `netif_addr' bottom-half lock, preventing races on deletion.
Introduced: 1.78.14 (1.70.06).
Relevance: All.
3. Problem: CQ67915, CQ68972 - VFs fail to appear after loading a PF.
Change: Don't request more VFs than what's possible according to the PF's configuration space, even if using module parameter `num_vfs' with a greater value.
Introduced: 1.74.02.
Relevance: SRIOV.
4. Problem: CQ68365 - Intermittent link issue when link speed is lower than 10G due to Warpcore firmware issue, which was initially observed on KX.
Change: Reset the OS8 Tx fifo during link initialization, and link change as a work-around.
Change: When VF is probed it samples the PF link speed and capabilities and uses these from that moment forward. Link changes in the PF are NOT forwarded to the VF (i.e. if the PF link goes down Vfs can still communicate).
Introduced: 1.74.02.
Relevance: SR-IOV.
6. Problem: CQ69122 - Debug print of memory allocation addresses showed the wrong address.
Change: Log the address being allocated.
Introduced: Day 1.
Relevance: All.
7. Problem: BZ921799 (RH) - PCIe Advanced Error Reporting - sometimes `BAD MCP validity signature' appears in syslog.
Change: Await for shmem re-validation after slot reset.
Introduced: 1.78.17.
Relevance: All.
8. Problem: Inaccurate max_fcoe_exchanges returned to CNIC caused some performance issues.
Change: Count only actual FCoE functions during calculation.
Introduced: 1.78.17.
Relevance: FCoE.
Enhancements: ------------- 1. Request: CQ67924 - During driver assert preserve hw state for next registers dump.
Version 1.78.17 (Apr 29, 2013) ============================== Internal FW 7.8.21
3. Problem: CQ68187 - After running a lot of FCoE traffic while two ports are running FCoE with at least on them with high function number (>1) in the same engine in 4-port mode a zeroed CQE will be given.
Change: (FW FCoe) Fix hardware initialization.
Introduced: 1.76.00.
Relevance: 57800, 57840, 4-port mode with multi-function..
4. Problem: CQ68159 - Second FCoE function on engine does not offload after it logs into target.
Change: Provide ULP driver with max_fcoe_exchanges allowed.
Introduced: 1.76.00.
Relevance: 578xx/57712: a. two port configuration with 2 FCoE PFs on same port. b. 4-port configuration wih FCoE on ports 1 and 3. c. 4-port configuration wih FCoE on ports 2 and 4.
5. Problem: A memory leak is encountered when unloading the driver.
Change: Prevent multiple-allocations of the t2 memory, and free the underlying ilt pages before releasing the memory of the ilt itself.
Introduced: 1.78.00.
Relevance: 57712, 578xx in presence of CNIC.
6. Problem: Disabling 20G link speed doesn't take effect after MFW first brought up the link in 20G.
Change: Actually disabling 20G link speed, and not leave configuration as default.
Introduced: 1.78.00.
Relevance: 57840-KR2.
7. Problem: CQ67441 - iSCSI boot scenario fails when there was not link flap avoidance in MF SD MODE with some FW (MFW).
Change: Let the FW know abpout the mode by passing flag DRV_MSG_CODE_LOAD_REQ_FORCE_LFA in the param field for the LOAD_REQ command.
Introduced: 1.74.02.
Relevance: All with MFW 7.8.3 and above.
8. Problem: BZ921799 (RH) - PCIe Advanced Error Reporting - driver failed to recover from second error.
Change: Inside flow, need to re-save the PCI state so it could be restored after next SBR.
Introduced: 1.78.06.
Relevance: All.
9. Problem: CQ68876 - Delete all vlan/MACs returns -EBUSY, failing the flow.
Change: Don't return -EBUSY when failing to take writer lock.
2. Request: CQ68664 - Add new PHY LED mode EXTPHY2 to set the link LED for 100M/1G/10G through LED1 pin of the 8483x PHY.
3. Request: CQ68656 - VF starts with all zero MAC address. This means a MAC address must be configured to it prior to interface load. This can be done either to the VF device directly or from the HyperVisor (via iproute2 suite).
4. Request: CQ66471 - when compiling driver with stop-on-error, re-instruct fw to test Tx packets via the `enforce_security_flag' (FW now supports the feature).
5. Request: Allow UDP tunneling offload.
Version 1.78.16 (Apr 11, 2013) ============================== Internal FW 7.8.18
Fixes: ------ 1. Problem: In encapsulation, increasing only id in outer IP header causes gro flow to flush state every packet.
Change: Increase id in inner IP header instead.
Introduced: 1.78.05.
Relevance: 57712/578xx.
2. Problem: CQ68375 - Compilation is broken on some 3.8.x kernel.
Change: (v2) Fix compat for inner* functions. Fix definition of bnx2x_bridge_gtelink().
Introduced: 1.78.15.
Relevance: Kernels above 3.8.
3. Problem: CQ68678 - TPA Rx aggregations are mishandled when sent using vlan0 with priority only; Eventually will be dropped by OS.
Change: Don't claim such aggregations have partial checksums; Instead, allow network stack to handle them without any checksum.
Introduced: 1.78.08.
Relevance: RHEL 5.x, 6.x.
4. Problem: Configuring mac address to loaded a loaded VF device would cause null pointer dereference.
Change: Add seperate flow for VF for mac configuration via ndo.
Introduced: 1.74.07.
Relevance: SR-IOV.
5. Problem: CQ68070, CQ68299 - Kernel Panic after NULL pointer dereference in `bnx2x_queue_state_change'.
Change: Don't access FCoE's sp object unless it was initialized by cnic first.
Introduced: 1.74.01.
Relevance: AFEX.
6. Problem: nvram update with byte resolution failed on BE machine.
Change: Fix byte update flow.
Introduced: Day one.
Relevance: All.
7. Problem: CQ68529, CQ68472 - loading driver after BFS caused DMAE timeout on AMD-Vi (with IOMMU).
Change: Prevent memory write transaction in load flow if BFS was detected.
Introduced: Day one.
Relevance: 57712/578xx.
8. Problem: CQ67715 - compilation failed with SLES11SP[23] on some architectures.
Change: Fixed in compat.
Introduced: 1.78.08/1.76.51.
Relevance: All.
9. Problem: CQ68638 - System hang when unload PF driver under network stress.
Change: PF notifies the VFs via the bulletin board that it is going down. VFs use this indication to stop sending messages on the vfpf channel, and to change their state to carrier off, preventing triggering of the tx watchdog.
Version 1.78.15 (Mar 21, 2013) ============================== Internal FW 7.8.18
Fixes: ------ 1. Problem: CQ68093 - Disabling RX/TX pause when flow-control is set to autoneg doesn't have any impact.
Change: Avoid advertising pause capabilities in case both are disabled. In case either exclusive are enabled, advertise asymmetric pause.
Introduced: Day 1.
Relevance: Autoneg devices.
2. Problem: CQ67916 - Long KR2 link up time due to consecutive KR2 disable/ recovery.
Change: After KR2 is disabled, wait at least 5 seconds before trying KR2 recovery, to provide enough time for the link to come up after KR2 is disabled.
Introduced: Day one.
Relevance: 57840-KR2.
3. Problem: CQ67801 - OS panics, showing "scheduling while atomic" in logs.
Change: Setting Rx mode is now scheduled into sleep-able context.
Introduced: 1.78.08.
Relevance: All.
4. Problem: CQ68300 - When SFP module EEPROM is access by OEM entity, the I2C may stop responding.
Change: Provide a way to read both sections a0/a2 of module EEPROM.
Introduced: Day one.
Relevance: 8726/8727/57800/57810-SFI.
5. Problem: CQ68375 - Compilation is broken on some 3.8.x kernel.
Change: Race on VF-PF mailbox caused messages to be overwritten. Add mutex to protect the mailbox.
Introduced: 1.78.00.
Relevance: 57712/578xx SRIOV.
Version 1.78.14 (Mar 06, 2013) ============================== Internal FW 7.8.18
Fixes: ------ 1. Problem: CQ67973 - After VF device load/unload statistics are corrupt.
Change: Zero stats structures on VF device load.
Introduced: 1.74.02.
Relevance: SR-IOV.
2. Problem: CQ67859 - Long KR2 link up time due to consecutive KR2 disable/ recovery.
Change: After KR2 is disabled, wait at least 5 seconds before trying KR2 recovery, to provide enough time for the link to come up after KR2 is disabled.
Introduced: Day one.
Relevance: 57840-KR2.
3. Problem: CQ67637 - No ping from VFs in switch dependant multifunction mode.
Change: Open VF queues with outer vlan removal enabled according to PF multi-function mode rather than VF multi-function mode.
Introduced: 1.74.02.
Relevance: SR-IOV.
4. Problem: CQ67635 - Chip crashes when iSCSI firmware tries to retransmit iSCSI login command. If the iSCSI Login is carrying data not aligned to 4 bytes, it will cause a hardware attention.
Change: (FW iSCSI) Fix to iSCSI retransmit flow.
Introduced: Day 1.
Relevance: All.
5. Problem: CQ67285 - iSCSI-boot installation fails when switching SFP+ boot port and moving the SFP+ module prior to boot. The SFP+ insertion triggers an interrupt which configures the SFP+ module according to module parameters that were not init.
Change: In the context of the assertion interrupt of the SFP+ module configure the SFP+ module only if PHY parameters were initialized.
Introduced: 1.74.00.
Relevance: 578xx - SFI.
Enhancements: ------------- 1. Request: Enable IPGRE RSS by default.
Version 1.78.13 (Feb 25, 2013) ============================== Internal FW 7.8.17
Fixes: ------ 1. Problem: Tunneling offload is not functional.
Change: Fixes in tx flow.
Introduced: 1.78.11.
Relevance: GRE 57712/578xx.
2. Problem: CQ67472 CQ67633 CQ67664 CQ67721- Race at VF interface unload leads to "dead" vf.
3. Problem: Kernel crash due to cnic-bnx2x version mismatch.
Change: Update interface version due to structure change.
Introduced: 1.78.11.
Relevance: CNIC storage.
4. Problem: Inter-PF TX switching was always allowed in NPAR mode and set.
Change: Disable inter-PF TX switching.
Introduced: Day 1.
Relevance: BCM57712/57810/57840, NPAR mode with TX switching.
5. Problem: CQ67720 - Issuing on-chip TCP close to iSCSI connection while there are open OOO isles will cause system crash.
Change: (FW iSCSI) Fix relevant firmware flow.
Introduced: 1.60.00 (FW 6.0.0).
Relevance: BCM57710/57711/57712/57810/57840.
6. Problem: CQ67005 - In some cases of on-chip termination the graceful termination timer gets "stuck", and the termination doesn't complete.
Change: (FW iSCSI) Firmware fix to MSL timer tolerance.
Introduced: Day 1.
Relevance: BCM57711/57712/578xx.
7. Problem: CQ67848 - Driver fails to compile on SUSE11SP3.
Change: Perform code adaptations.
Introduced: Day 1.
Relevance: SUSE11SP3.
8. Problem: CQ67861 - SR-IOV sysfs support caused long timeouts in driver load/unload and "unknown device" printouts when sriov virtual functions were configured (via nvm cfg or via CCM). Note, SR-IOV didn't have to be enabled.
Change: Support SR-IOV sysfs interface only when PF is up and scan only relevant VFs when loading/unloading.
Introduced: 1.78.11.
Relevance: Machines where number of VFs > 0 (configured via CCM or nvm cfg. SR-IOV may have been disabled).
9. Problem: GRE enabled for 57710/57711.
Change: Disable the feature for unsupported hw.
Introduced: 1.78.06.
Relevance: 57710/57711.
10. Problem: CQ67180 - when ARI forwarding flag is not present in pci bridge device probe fails.
Change: Only fail sriov support.
Introduced: 1.74.02.
Relevance: SR-IOV.
Version 1.78.12 (Feb 14, 2013) ============================== Internal FW 7.8.15
Fixes: ------ 1. Problem: Driver fails to compile on SLES11SP2.
Change: Revert compat changes.
Introduced: 1.78.11.
Relevance: SLES11SP2.
Version 1.78.11 (Feb 13, 2013) ============================== Internal FW 7.8.15
1. Problem: Division-by-zero is possible when receiving unusual aggregated (GRO/LRO) packets.
Change: Use number of aggregated packets from FW cookie.
Introduced: 1.78.09.
Relevance: GRO/LRO.
2. Problem: Driver does not compile on SLES11 SP2 Xen kernel.
Change: Introduce said kernel in the compat file.
Introduced: 1.78.09.
Relevance: SLES11 SP2 Xen.
3. Problem: CQ67367 - Complete starvation of ETH traffic in stress scenario involving FCoE and ETH traffic.
Change: Fix hardware initialization values.
Introduced: Day 1 of 4-port.
Relevance: 578xx, 4-port mode.
4. Problem: Fix performance issue of non-LSO encapsulated packets with L4 checksum offload.
Change: (FW ETH) Fix the relevant firmware flow.
Introduced: 1.78.10 (FW 7.8.14).
Relevance: BCM57712/57810/57840, non-LSO encapsulated packets with L4 checksum offload.
5. Problem: CQ67253 - Chip gets stuck during heavy FCoE traffic in 4-port mode while working vs. 3PAR targets.
Change: (FCoE FW) Fix relevant firmware flow.
Introduced: Day-1.
Relevance: BCM57712/57810/57840 FCoE 4-port mode.
6. Problem: CQ67011 - False error reporting while working vs. 3PAR targets.
Change: (FCoE FW) Fix relevant firmware flow.
Introduced: Day-1.
Relevance: BCM57712/57810/57840 FCoE.
7. Problem: FW assert when compiling with STOP_ON_ERROR.
Change: Stop instructing fw to test Tx packets via the `enforce_security_flag' (waiting for FW support).
Introduced: 1.78.08.
Relevance: SOE with iSCSI support.
Enhancements: ------------- 1. Request: CQ67513 - Support dynamic control of number of VFs via sysfs interface.
2. Request: CQ67682 - Added debug prints for parity attentions.
Version 1.78.10 (Feb 05, 2013) ============================== Internal FW 7.8.14
Fixes: ------ 1. Problem: Driver does not compile on SLES11 SP2 and SP3.
Change: Fix compat.h and various ifdefs to allow compilation.
Introduced: 1.78.09.
Relevance: SLES11 SP2/SP3.
Enhancements: ------------- 1. Request: CQ67078 - Control SFP+ tap values through nvm configuration.
Version 1.78.09 (Feb 03, 2013) ============================== Internal FW 7.8.14
Fixes: ------ 1. Problem: Compilation of driver fails when kernel is compiled without TCP/IP support (CONFIG_INET).
Change: Don't compile the GRO bridging fix if TCP/IP is not enabled.
Change: Ignore spurious interrupts received before interrupts are enabled in the IGU.
Introduced: 1.72.13.
Relevance: Kdump kernel.
3. Problem: CQ67344 CQ67342 CQ67343 CQ67214 activating or configuring register dump / flow control / self test / int. coalescing / nic identification (blink led) for a VF would crash the Guest OS.
Change: Create a separate ethtool ops struct for vfs, supporting vf-safe ops only.
Introduced 1.74.02.
Relevance: SR-IOV.
4. Problem: GRO usage may cause qdisc counting to go wrong.
Change: correctly set gso_segs for all aggregated packets.
Introduced: 1.72.09.
Relevance: net-next, qdisk ingress enabled.
5. Problem: In SFP detection module when 1G device is detected, an error for wrong forced link speed is printed, regardless of requested link speed.
Change: Condition the warning print for wrong forced link speed only if the previous doesn't match the current.
Introduced: 1.74.10.
Relevance: 578xx - SFP+.
6. Problem: CQ66632 - driver logs "unknown MF mode 0x100" when in single function mode.
Change: Issue printout only when multi function mode is really unknown.
Introduced: Day 1.
Relevance: Forced Single Function mode.
7. Problem: CQ66564 - Chip might crash when receiving data packet carrying TCP FIN flag during heavy iSCSI traffic.
Change: (FW iSCSI) Fix race condition between data placement command, and receive buffer release command during connection termination.
9. Problem: Malicious VF may cause a hardware attention if VF will send LSO packet with zero mss value.
Change: (FW ETH) Fix the relevant firmware flow.
Introduced: 1.64.00 (FW 6.4.0).
Relevance: BCM57712/57810/57840, SRIOV only.
10. Problem: CQ66794 - device is writing to address 0 in 57710 TPA.
Change: (FW ETH) Fix the relevant initialization code in 57710.
Introduced: 1.64.00 (FW 6.4.0).
Relevance: 57710 only, when TPA is enabled.
11. Problem: CQ66787 - When packet with payload bigger than MTU arrives a Malicious VF notification errr_id-0x3 was given.
Change: (FW ETH) Silently drop packets with payload bigger than MTU.
Introduced: 1.78.00 (FW 6.4.0).
Relevance: BCM57712/57810/57840, SRIOV only.
Enhancements: ------------- 1. Request: CQ67327 - Driver learns metal version from MFW instead of reading MISC_REG_CHIP_METAL.
2. Request: CQ61593 - Added private flags support which passes the information of which storage offloads are available, and whether a given function is `storage-only'.
3. Request: CQ67340 - Storage-only devices use their SAN mac for their primary mac.
4. Request: Improve performance of non-LSO checksum offloading of packets with tunneling.
5. Request: In tunneling LSO, set DF flag on the IPv4 header in case we don't increment the IP ID.
6. Request: CQ67514 - SR-IOV: Support HyperVisor iproute2 callbacks for configuring and querying VF properties.
7. Request: Set elink shmem link indication as up during loopback test.
Version 1.78.08 (Jan 13, 2013) ============================== Internal FW 7.8.12
Fixes: ------ 1. Problem: CQ66869 - Throughput in bridging scenarios when GRO is enabled (and LRO is disabled) is very low.
Change: Under GRO, calculate pseudo checksum and send packet with CHECKSUM_PARTIAL to the network stack.
Introduced: 1.72.09.
Relevance: GRO bridging.
2. Problem: CQ67111 - Failure to allocate all Tx queues may lead to panic.
Change: Correct pointer references to queues structures when memory is insufficient for all queue allocations.
Introduced: 1.72.13.
Relevance: Multi-CoS.
3. Problem: CQ66264 - Null pointer dereference when deleting vlan mac classifications.
Change: Add a multiple-reader/single-writer lock protecting the vlan_mac_obj registry list.
Introduced: 1.70.00.
Relevance: All.
4. Problem: vlan mac functionality may cause memory leaks.
Change: Release unreferenced elements from execution queue when the queue gets emptied.
Introduced: 1.70.00.
Relevance: All.
Enhancements: ------------- 1. Request: CQ66471 - when compiling driver with stop-on-error, instruct fw to test Tx packets via the `enforce_security_flag'.
Version 1.78.07 (Dec 26, 2012) ============================== Internal FW 7.8.12
Fixes: ------ 1. Problem: CQ66512 - Race between FLR flow and VF close flow leads to FW assert.
Change: Avoid changing the function state in FW ram at close flow.
Introduced: 1.74.02.
Relevance: SR-IOV.
2. Problem: CQ66879 - The LED does not blink on the BCM84834 based board due to awkward HW LED wiring.
Change: Use LED4 of the BCM84834 to toggle the panel LED while keeping interrupt disabled to avoid NIG attentions, and at the end restore NIG to previous state.
Introduced: Day 1.
Relevance: BCM84834.
3. Problem: CQ66572, CQ66438, CQ66437 - configuring vlan group for VF device was not supported for VFs running in old kernels.
Change: Implement the vlan_rx_register ndo in relevant kernels.
Introduced: 1.78.00 (SR-IOV day one).
Relevance: SR-IOV VF devices in kernels before 2.6.37.
4. Problem: CQ66795 - NC-SI traffic is stopped between probe phase to ifup phase when launched after UNDI driver (in FCoE or iSCSI boot).
Change: Re-enable NIG filters after closing them as part of other driver unload flow in probe phase, and close LLH filters set by UNDI.
Introduced: 1.74.10 (when fixing CQ #64854).
5. Problem: Final cleanup on 4-port during FLR mode may cause hardware attention.
Change: (FW) Fix the relevant firmware flow.
Introduced: Day 1.
Relevance: BCM57712/57810/57840, FLR flow in 4-port mode.
6. Problem: CQ66558 - Total loss of network traffic and crash may occur when ToS changes during the life-cycle of a TCP connection (e.g., pure ack in a connection supporting ECN) while TPA is enabled.
Change: (FW Eth) Fix handling of ToS change in TPA firmware flow.
Introduced: 1.64.01.
Relevance: TPA enabled.
7. Problem: With TPA enabled, an aggregation of tcp packets can be started by a Pure-ACK packet over IPv6.
2. Request: CQ66689 - Add support for RJ45 SFP module.
3. Request: Support differnet GRE RSS modes. Feature is conigured using two module params with following values: gre_tunnel_mode - Set GRE tunnel mode: 0 - NO_GRE_TUNNEL 1 - NVGRE_TUNNEL 2 - L2GRE_TUNNEL 3 - IPGRE_TUNNEL gre_tunnel_rss - Set GRE tunnel RSS mode: 0 - GRE_OUTER_HEADERS_RSS 1 - GRE_INNER_HEADERS_RSS 2 - NVGRE_KEY_ENTROPY_RSS
Version 1.78.06 (Dec 09, 2012) ============================== Internal FW 7.8.9
Fixes: ------ 1. Problem: After PMF migration when KR2 is enabled, a link flap would occur since the KR work-around indication was not saved in shmem.
Change: Save KR2 work-around parameter in shmem, and synchronize it like rest of link parameters with all PFs.
Introduced: T7.8.
Relevance: 57840-KR2.
2. Problem: register dump via ethtool (ethtool -d) would cause vfc parity and tsem interrupt to be raised.
Change: Remove the vfc registers from the registers being read by register dump.
Introduced: 1.78.02.
Relevance: T7.8.
3. Problem: CQ64624 - non inbox driver on RH6.3 appear to have DMA issues.
Change: Use compat.h to override the missing CONFIG_NEED_DMA_MAP_STATE in RH6.3.
Introduced: Day 1.
Relevance: RH6.3.
4. Problem: CQ66536 - Boot from SAN fails due to dcbx out of sync towards specific switch. Failure occurs because link flap after OS driver loads is missed by the switch.
Change: Don't flap the link when driver takes link ownership, if loads after preboot driver, even if required link settings aren't similar.
Introduced: Day 1.
Relevance: Boot from SAN flow.
5. Problem: VLAN acceleration in not functional on RHEL6.4.
Change: Adapt compat.h to RHEL6.4.
Introduced: Day 1.
Relevance: RHEL6.4.
6. Problem: CQ66620 - Panic when memory allocation fails.
Change: Correct the movement of PFs when memory allocation fails.
Introduced: 1.72.51.
Relevance: FCoE.
7. Problem: CQ66790 - KR2 link remains down after reboot. FCOE driver reconfigured bnx2x driver settings via ethtool, while 1G/10G supported link speed were missing by default, causing the ethtool to clear existing 1G/10G link advertisement.
Change: Add 1G/10G link speeds to KR2 Net Serdes Interface, and additional, add support for 20G advertisement when autoneg link speed is set via ethtool.
Introduced: T7.8.
Relevance: 57840-KR2.
8. Problem: CQ66353 - VFs do not enumerate when only port 1 is enabled and configured for SR-IOV.
Change: Gracefully abort iov probe when a fucntion has SR-IOV capability but 0 VFs.
Introduced: 1.74.02.
Relevance: SR-IOV.
Enhancements: ------------- 1. Request: Support for NVGRE RSS by module param (nvrge_rss_en).
2. Request: Revised PCIe Advanced Error Recovery.
3. Request: CQ65639, CQ65815 - Implement a shutdown callback which handles PCI power management.
4. Request: CQ66821 - Propagate new SF personalities from NVM.
Version 1.78.05 (Nov 19, 2012) ============================== Internal FW 7.8.9
Fixes: ------ 1. Problem: CQ66067 - 'ethtool -t' on a VF causes a kernel warning.
Change: on VFs, self tests are no longer supported.
Introduced: 1.78.02.
Relevance: SRIOV.
2. Problem: CQ66540 - MAC is all 0s for FCoE function in SD mode.
Change: Use SAN MAC instead.
Introduced: 1.78.00.
Relevance: FCoE SD mode for 57712/578xx.
Version 1.78.04 (Nov 16, 2012) ============================== Internal FW 7.8.9
Fixes: ------ 1. Problem: KR2 - Possible link flap after link up due to frame errors.
Change: Adjust KR2 register configuration fix this problem, so the frame error detection band-aid is now removed.
Introduced: 1.78.03.
Relevance: 57840-KR2.
2. Problem: 'make soe' fails.
Change: Rearrange code for STOP_ON_ERROR.
Introduced: 1.78.03.
Relevance: All.
3. Problem: CQ65961 - driver compilation fails on RHEL6.4 test kernel.
Change: Fix in compat.h.
Introduced: Day one.
Relevance: All.
4. Problem: CQ66407 - No link against certain 10G switches in KR2 mode. CQ66381 - No link against certain 1G switched in KR2 mode.
Change: Fix KR2 register setting to fit these modes as well. Note that in case of 8073 LP, a 10G fallback is still required.
Introduced: T7.8.
Relevance: 57840-KR2.
Enhancements: ------------- 1. Request: Support for GRE TX CSUM offload and LSO (IPv4 and IPv6).
Version 1.78.03 (Nov 13, 2012) ============================== Internal FW 7.8.9
Fixes: ------ 1. Problem: CQ65780 - Link flap on KR2 against 20G switch. CQ66364 - Link delay on KR2 connected to Pass through. CQ66079, CQ66331, CQ66407, CQ66381 - KR2 cannot link against various 10G switches.
Change: 1. Add 10G fallback to KR2 devices, in case link partner doesn't set NP bit in the base page, or it only advertise 1G-KX. In that case, KR2 configuration is removed, and AN will be restarted. 2. Add KR2 recovery, in case port is in 10G-fallback mode, and sigdet is cleared, BP is cleared or LP advertises NP in BP. 3. Add Frame Error Detection when link is up, and error frames are seen, restart AN.
Introduced: 1.78.00.
Relevance: 57840-KR2.
Enhancements: ------------- 1. Request: CQ66234 - add debug information for malicious notifications from firmware.
Version 1.78.02 (Nov 08, 2012) ============================== Internal FW 7.8.9
Fixes: ------ 1. Problem: CQ65641 - No 1G link against certain switches.
Change: Restore CL72 misc control register to default value rather than 0.
Introduced: T7.2.
Relevance: 578xx-KR.
2. Problem: CQ65784 - No link against 1G switch in KR2 mode.
Change: Check 1G link as well in KR2 mode.
Introduced: 1.78.00.
Relevance: 57840.
3. Problem: Several KR registers were not set correctly back to default correctly after loopback test.
Change: Set those global registers over the global WC lane (zero) rather than the current lane.
Introduced: 1.74.02.
Relevance: 57840 - KR/KR2.
4. Problem: KR2 work-around (From CQ65727 fix), may be set off too early.
Change: Wait for 4 seconds after signal is detected, before start checking the need for symptoms of this problem, and in that case, disable the whole KR2 configuration, and not just CL73.
Introduced: 1.78.01.
Relevance: KR2.
5. Problem: CQ65773 - No link after PXE boot in link flap avoidance case.
Change: Set the appropriate default PHY DEVAD even if LFA kicks in.
Introduced: 1.74.02.
Relevance: 57712.
6. Problem: CQ66067 - 'ethtool -t' on a VF causes panic.
Change: Remove self-test support from VFs.
Introduced: day 1.
Relevance: SR-IOV.
7. Problem: Driver crashes when adding VLAN on an interface while CNIC is not loaded.
Change: Check if CNIC is loaded before trying to configure the FCoE queue with VLAN.
Introduced: Introduced: 1.78.00.
Relevance: All.
8. Problem: CQ65406 - FLR on VF0 on MF system can cause system crash.
Change: (FW Fix) Fix to FLR flow in Initial Cleanup Ramrod.
Introduced: 1.78.00 (FW 6.4.0).
Relevance: BCM57712/57810/57840, SRIOV Only.
9. Problem: CQ65838- Driver asserts when VM is started.
Change: (FW fix) FLR Initial Cleanup for VF with function state disabled is now allowed.
Introduced: 1.78.00 (FW 7.8.0).
Relevance: BCM57712/57810/57840, SRIOV Only.
10. Problem: CQ66088, CQ66042, CQ65950 - FCoE is not functional on 4-port mode.
Change: (FW fix) fix for separation between the 2 ports of path. Fix function ID assignment.
12. Problem: CQ65981 - KR link stays down after toggling OEM switch port state.
Change: Add recovery sequence that runs every two seconds for four times after PHY is initialized, and after link goes down. In case it detects link down, it toggles RX/TX asic, and restarts autoneg.
Introduced: Day 1.
Relevance: 57810-KR.
13. Problem: CQ63937 - D3 external loopback test failing on 20G boards.
Change: Refine force 20G KR2 mode, mainly around CL72 registers.
Introduced: Day 1.
Relevance: 57840-KR2.
14. Problem: When using netconsole the system may crash.
Change: Add napi for cnic queues only if cnic is enabled and as part of cnic_load.
Introduced: 1.78.00.
Relevance: All.
15. Problem: Potential crash during panic dump.
Change: In panic dump, collect information from the cnic queues only if cnic queues were initialized.
Introduced: 1.78.00.
Relevance: All.
16. Problem: CQ66284 - DXGXS fails to pass traffic.
Change: Set XMAC mode to XLGMII only in KR2 and not in DXGXS mode.
Introduced: 1.78.00.
Relevance: 57840-DXGXS.
17. Problem: CQ66105 - In SD mode, outer vlan may be incorrect.
Enhancements: ------------- 1. Request: CQ65665 - Add grc dump generation capability. Supported from kernel v3.0.0 and above. Usage: 'ethtool -d eth > filename'.
2. Request: When unknown TLV arrives on the VF PF channel: 1. do not lock the channel. 2. if the VF is acquired, respond that TLV is not supported.
Version 1.78.01 (Oct 18, 2012) ============================== Internal FW 7.8.2
Fixes: ------ 1. Problem: CQ65645 - Possible incorrect link speed provision following rapid link speed change.
Change: Clear link speed mask after each link change, and not only after link down.
Introduced: Day 1.
Relevance: Autoneg.
2. Problem: Ethtool -p working for PMF only.
Change: Set HW lock for each PHY trunsaction. Allow led blickering for not PMF.
Introduced: Day 1.
3. Problem: Big Endian machines filter incoming ARP packets.
Change: Corrected function_start ramrod after HSI changes.
Introduced: 1.78.00.
Relevance: Big Endian Multi-Function devices.
4. Problem: Idle Check fails after boot from SAN.
Change: Clean NIG interrupts in UNDI unload flow.
Introduced: Day 1.
Relevance: Boot from SAN.
5. Problem: CQ65727 - KR2 fails to link against (non-8073) 10G switch.
Change: Apply KR2 work-around in case CL73 fsm is stuck waiting for next-page.
Introduced: T7.5.
Relevance: KR2.
6. Problem: 10G Functions are allocating minimal Rx rings.
Change: Correct fix reducing the size of rings for 1G functions.
Introduced: 1.72.06.
Relevance: 5771x.
7. Problem: Driver loading with non-zero debug parameter may lead to segmentation fault and improper board name is printed.
Change: Fix boards descriptions.
Introduced: 1.74.03.
Relevance: 578xx and 57712 VF.
8. Problem: CQ65910 - KR2 fails to link against (non-8073) 10G switch.
Change: Apply KR2 work-around in case CL73 fsm is stuck waiting for next-page on a specific lane, and not on both lanes of the port.
Introduced: T7.5.
Relevance: KR2.
9. Problem: CQ65848 - When probing for devices on RH6.3, 57840 boards in multi-function mode are ignored.
Change: Override linux's defined PCI_DEVICE_ID for 57840 MF.
Introduced: 1.78.00.
Relevance: 57840 MF.
10. Problem: Possible crash when storage services are requested and the device is in INT mode.
Change: Update the interrupt handler with the correct condition to check completions on the OOO queue.
Introduced: 1.78.00.
Relevance: All.
11. Problem: CQ61866 - Link drops during reboot test using MFW older than T7.2 due to lack of appropriate PHY lock in those versions. Since this is timing related, some systems may exhibit this issue more often than others.
Change: When old MFW is detected, check correct EMAC setting for CL45 and the correct PHY clock to achieve good PHY access. In case it is not set correctly, change it accordingly. In addition, in case of external PHY, set the external PHY's EMAC mode in case it is different than the internal PHY.
Introduced: Day 1.
Relevance: All.
Enhancements: ------------- 1. Request: CQ65695 - when DCB ioctls fails due to wrong version passed by user, print the versions (both requested and passed).
2. Request: enlarge the memory reserved for the PF VF bulletin board for future growth.
3. Request: CQ64735 - Control SFP+ tap values through nvm configuration.
Version 1.78.00 (Sep 16, 2012) ============================== Internal FW 7.8.2
Fixes: ------ 1. Problem: Driver load fails due to interrupts remaining masked forever.
Change: Added logic to the sp task to determine whether it was invoked by an interrupt or by another flow (e.g. SRIOV).
Introduced: 1.72.10.
Relevance: SRIOV.
2. Problem: When SFP+ module is plugged in after driver is already loaded, it may not be recognized.
Change: Allow SFP module recognition time of up to 300ms, without resetting the module power in the middle.
Introduced: 1.74.01.
Relevance: 578xx-SFP.
3. Problem: CQ65455 - driver does not compile on XenServer 6.1.
Change: Updated compat.h with xenserver support to enable compilation.
Change: Fixed misbehaviour in which driver always enabled auto-greeen according to shmem value.
Introduced: 1.70.20.
Relevance: 578xx, auto-greeen.
5. Problem: When ethtool -t reports errors - it does not provide any information about errors founded.
Change: Change print level for errors.
Introduced: Day one.
Relevance: All.
6. Problem: CQ65475 - LPI keeps on advancing when link speed is one for which EEE is inactive.
Change: Enable LPI and claim EEE is active only if EEE was negotiated for actual link speed.
Introduced: 1.74.10.
Relevance: 578xx, EEE.
7. Problem: CQ56737(cont.) - TX_DIS signal causes current leakage issue on the module 3.3V power rail (V_3P3_SFP2) when no module is plugged.
Change: Keep TX laser always enabled even when SFP+ module is plugged out.
Introduced: 1.74.00.
Relevance: 578xx.
8. Problem: No link on 578xx 10G-baseT boards. This problem is introduced only now, due to changes in 20G link indication which indirectly affects detecting this type of link.
Change: Apply correct supported mode to the XFI interface of the Warpcore.
Introduced: No.
Relevance: 578xx.
9. Problem: When device in KR2 mode link with BCM8073, and link partner initiate autoneg, link is not recovered.
Change: In this mode, when link goes down, and KR2 work-around is set, re-advertise 20G speed and restart autoneg. This fix also covers scenario where a 8073 link partner is swapped with true KR2 link partner.
Introduced: 1.75.00.
Relevance: 57840-KR2.
10. Problem: CQ65497 - Observing packet drops when running heavy traffic.
Change: Add BRB initialization to port phase.
Introduced: 1.74.11.
Relevance: 57712/578xx.
11. Problem: CQ65569 - Memory is leaking during modprobe/rmmod test.
Change: Clear relevant bit when disabling. Code mistakenly only set relevant bit when enabling.
Introduced: Day 1.
Relevance: 57712 + 578xx.
6. Problem: CQ65074 - Possible no link when LFA kicks in after pre-boot driver initialized the link, since preboot drivers do not work in interrupt mode, hence do not initialize it.
Change: If LFA terms are met, initialize the necessary interrupt registers in the PHYs.
7. Problem: CQ64849 - PFC is not enabled even when asked explicitly through BACS when remote peer doesn't support DCBX.
Change: Configure PFC/ETS values even if remote peer is missing if asked explicitly through dcbnl/ioctl.
Introduced: Day 1.
Relevance: 57712 + 578xx.
8. Problem: CQ64854 - Link flap is observed during boot from SAN.
Change: Fix driver's reload flows (inner unload/load) to inform the MFW not to toggle the link.
Introduced: Day 1.
Relevance: All.
9. Problem: Stack overrun in HyperVisor in SRIOV error flows.
Change: Change state machine transitions to utilize rescheduling of workqueue items instead of recursion in error flows.
Introduced: 1.74.02.
Relevance: SRIOV.
10. Problem: Some VFs fail to load in VMs. Specifically, FLR cleanup is not performed on VFs with vfid >= 8.
Change: Store the result of the logical and of the FLRed vfs mask and the existing VFs in u32 rather than u8.
Introduced: 1.74.02.
Relevance: SRIOV.
11. Problem: CQ64980 - On systems where the ethtool set_settings function is called when interface is loaded, LFA doesn't occur.
Change: Limit link reset on ethtool only for EEE setting, and restart N-WAY negotiation.
Introduced: 1.74.06.
Relevance: LFA.
Enhancements: ------------- 1. Request: Add EEE to LFA conditions.
2. Request: Display the following warning when non-10G Ethernet SFP optic module is plugged in, and the speed is forced to 1G. "Warning: Link speed was forced to 1000Mbps. Current SFP module in port 2 is not compliant with 10G Ethernet".
3. Request: CQ64686 - boards with 54618se external phys now use native eee instead of auto-grEEEn.
Version 1.74.09 (Aug 06, 2012) ============================== Internal FW 7.4.9
Fixes: ------ 1. Problem: ethtool -t under traffic may fail.
Change: Update registers' definitions.
Introduced: Day one.
Relevance: All.
2. Problem: Ethtool shows previous speed/duplex instead of unknown when DCC indicates 'link down'.
Change: Fix callback when flag MF_FUNC_DIS is set.
Introduced: 1.72.11.
Relevance: DCC.
3. Problem: At insmod driver would clear all the bits of the recovery register of that engine. In Physical Device Assignment this could lead to the recovery bit of a loaded PF (on another VM) to be cleared, leading to recovery taking place while a PF is active. This could certainly crash a VM, and perhaps also the HyperVisor.
Change: Do nothing with the recovery reg at insmod. Driver sets it's bit at nic_load, resets it at nic_unload, and if a VM crashes ungracefully, bootcode clears the bit at pulse timeout.
Introduced: 1.72.03.
Relevance: Recovery Flow in Physical Device Assignment.
4. Problem: At previous driver unload flow (removing the initialization remnants after chip was initialized by a driver from which control was wrested such as kdump in pda, or after undi driver) condition to activate FLR was wrong, resulting with FLR never taking place (and driver load taking place after timeout, disregarding the fact that the function was not reset). Errors in FLR activation led to function not acking the unload command towards mcp, leaving the function disabled.
Change: Fix FLR activation condition and error handling in previous unload flow.
Introduced: 1.72.13.
Relevance: Physical Device Assignment.
5. Problem: No connectivity between VF and its host PF when in single function mode even if tx-switching module param was set.
Change: Add the source and dest mac addresses to the parsing BD if the tx-switching module param was set (this was already done in switch independent multi function mode, so problem only occurs in single function mode.
Introduced: 1.72.02.
Relevance: SRIOV in single function mode.
Version 1.74.08 (Aug 01, 2012) ============================== Internal FW 7.4.9
Fixes: ------ 1. Problem: CQ64511 - if num_vfs module parameter is given but SRIOV capability is not present in pci config space probe was failed. This caused device with 2x10g ports and 2x1g ports to show only the 10G devices, or a machine with E3 and E1.5 devices to show only the E3 devices.
Change: Succeed probing SRIOV incapable devices regardless of num_vfs, module parameter. if SRIOV capability is not present - don't support it.
Introduced: 1.74.02.
Relevance: SRIOV.
2. Problem: CQ64723 - Spelling error in the following debug print: "WOL not supproted".
Change: Replace supproted with supported.
Introduced: 1.72.12.
3. Problem: Once the first VF interface is loaded, fcoe non-offloaded stats are no longer collected, and PF issues stats requests for the first VF address even after it is unloaded.
Change: Properly position VF stats requests on ramrod with respect to FCOE stats requests.
Introduced: 1.74.02.
Relevance: SRIOV.
4. Problem: CQ64670 - If there are more than 64 cids for PF (e.g. 64 queues for PF plus a fwe for iscsi or fcoe, or when multi cos is supported when there 22 or more pf rx queues) the pf cids overspill into VF space, causing misinterpretation of PF completions as belonging to VF (can lead to HW assert, kernel null pointer dereference, etc).
Change: Enlarged the PF queues space to 256. This should cover any known configuration. Added logic to ensure that even if this barrier is breached by number of PF queues, SRIOV will simply be denied to the PF, rather than crashing catastrophically.
Introduced: 1.74.02.
Relevance: SRIOV.
5. Problem: Possible memory leak in mcast configuration flow.
Change: Properly release memory.
Introduced: 1.64.00.
Relevance: All.
Enhancements: ------------- 1. Request: Use different bit to mark to MFW not to take link ownership upon other driver unload flow (due to MFW logics change).
2. Request: CQ64169 - Update the driver string to "Broadcom NetXtreme II 10G/20G Ethernet Driver" instead of listing all the different chips.
3. Request: Endian changes to support clean compilation with sparse.
Version 1.74.07 (Jul 17, 2012) ============================== Internal FW 7.4.9
Change: Update net carrier status at interface up.
Introduced: 1.74.02.
Relevance: SRIOV.
2. Problem: CQ64368 - GRC timeouts are seen when driver trying to configure XMAC with PFC setting, while link speed is lower than 10G, and only UMAC is active. On extreme cases, GRC timeout may lead to system hang.
Change: Configure PFC parameters on XMAC only when XMAC is active.
Introduced: Day 1.
Relevance: 578xx connected to DCBX enabled switch in 1G link speed or lower.
3. Problem: Transmit statistics are miscounted.
Change: Fix Address type on parsing buffer descriptor.
Introduced: 1.74.06.
Relevance: 57712/578xx.
4. Problem: CQ64420 - kernel panic due to division by zero was caused by vf driver interperting an rx cqe as a gro cqe when in fact it was an lro cqe.
Change: Widened vf pf interface to allow vf to request either lro, ipv6 lro or gro queues.
Introduced: 1.74.02.
Relevance: SRIOV.
5. Problem: in NPAR vfs of pfs higher than 0 fail to load.
Change: Treat vf index sent by vf at acquire as absolute in path and not relative within pf.
Introduced: 1.74.02.
Relevance: SRIOV with NPAR.
6. Problem: Possible memory leak when NIC load fails.
Change: Free all memory allocated until the failing point.
Introduced: 1.74.02.
Relevance: All.
7. Problem: CQ64080 - dcbnl reports that dcbx is supported even if it is disabled in nvram (nvm cfg 105 == 0).
Change: 1. Init bp->dcb_state and bp->dcbx_enabled according to dcbx nvram value (as reflected through shmem). 2. Don't enable dcbnl/ioctl to change dcbx state if it is disabled in nvram.
Introduced: Day 1.
Relevance: 57712 + 578xx.
8. Problem: iSCSI connection on-chip TCP graceful termination fails if OOO isles exist when TCP CLOSE ramrod is sent.
Change: FW iSCSI fixup.
Introduced: 1.74.04.
Relevance: iSCSI OOO.
9. Problem: CQ64612 - EEE statistics are not gathered correctly on 4-port device.
Change: Read EEE statistics on a per-port manner when gathering stats.
Introduced: 1.74.02.
Relevance: EEE on 4-port devices.
10. Problem: Unloading a device might causing a 'Failed to connect to CNIC IRQ' warning to appear.
Change: Don't request cnic interrupt when working in single msi-x mode.
Introduced: 1.72.16.
Relevance: Single MSI-X & iSCSI OOO.
Enhancements: ------------- 1. Request: Propagate bootcode version and phy firmware version from pf to vf.
2. Request: Add asynchroneous aggregative communication channel from pf to vf (bulletin board).
3. Request: Support mac address configuration of vf from pf. Mac address is supplied either at acquire response (if already configured at that stage) or via the bulletin board. Support ndo_set_vf_mac. Once mac is configured by pf requests from the vf for changing it or adding more macs will be denied.
4. Request: HSI change to reduce number of sparse endian warnings.
Version 1.74.06 (Jul 02, 2012) ============================== Internal FW 7.4.8
Fixes: ------ 1. Problem: CQ62298 - MTU changes for iscsi interface while interrupts are INTa cause timeouts and assertions.
Change: CNIC notifies bnx2x whether its responsible for the interrupt or not via a flag.
Introduced: 1.72.51.
Relevance: iSCSI OOO over INTA.
2. Problem: CQ64001 - error bit set in ME register when VF tries to load.
Change: Do not disable pci access to the VF upon vf release, as the VF requires pci access at all times (as does the PF for posting responses).
Introduced: 1.74.04.
Relevance: SRIOV.
3. Problem: CQ63998 - fail to load VF in 32bit guest OS on 64bit Hypervisor.
Change: use aligned_u64 instead of U64 in addresses in the vf pf channel interface.
Introduced: 1.74.04.
Relevance: SRIOV.
4. Problem: Driver has a memory leak.
Change: Fix unload flow - PFs should free memory instead of VFs.
Introduced: 1.74.02.
Relevance: All.
5. Problem: Other driver unload flow can end incorrectly.
6. Problem: CQ64274 - Wrong fairness between traffic classes.
Change: FW: Fix ETS default settings.
Introduced: 1.74.04.
Relevance: All.
7. Problem: CQ63871 - LFA ignores EEE configuration change through ethtool. Actually this applies to any change coming from the ethtool in case there's no change in link params.
Change: Whenever the link_set function is called in order to change link parameter, force reset the link, since this is probably the wanted behavior even if LFA conditions are met.
Introduced: 1.74.02.
Relevance: All.
Enhancements: ------------- 1. Request: Lay groundwork for forward compatibility in vf pf channel interface. Changed the interface messages to be TLVs, in preparation of future extensions.
2. Request: Prevent link-flaps during other driver unload.
Version 1.74.05 (Jun 26, 2012) ============================== Internal FW 7.4.7
Fixes: ------ 1. Problem: CQ63429 - If MSIX and MSI allocation fails, probe phase failed completely without the fallback of using INTx.
Change: In such a case in PF, use INTx and complete probe fails successfully.
Introduced: 1.74.02.
Relevance: All.
2. Problem: CQ63790 - Wrong logic when clearing FP structure, causing only partial clearance of TPA info, and potential clearance of none allocated buffers.
Change: Clear only allocated buffers and clear the entire tpa_info structure.
Introduced: 1.74.03.
Relevance: All.
3. Problem: XSTORM MC assert is observer during heavy TCP outbound traffic.
Change: Increase number of BDs to stop/resume TX queue.
Introduced: Day one.
Relevance: GSO.
Enhancements: ------------- 1. Request: CQ64131 - add suport nvm cfg fields for "pause on host ring". Working either by module param or nvram configuration.
Version 1.74.04 (Jun 18, 2012) ============================== Internal FW 7.4.7
Fixes: ------ 1. Problem: bnx2x driver incorrectly sets ip_summed to CHECKSUM_UNNECESSARY on encapsulated segments.
Change: Change checksum handling in Rx flow - decide whether checksum was validated by FW.
Introduced: Day 1.
Relevance: All.
2. Problem: Link warpcore eee passthrough mode is configured according to wrong logic.
Change: Remove logic - always configure the warpcore for eee passthrough mode.
Introduced: 1.74.02.
Relevance: 57711, 577xx.
3. Problem: CQ63755 - Driver crash after load as result of LFA logic.
Change: Close and open NIG-BRB gates only during when driver loads and unloads respectively.
Introduced: 1.74.02.
4. Problem: If no VFs were allocated to a PF with SRIOV capability, driver would attempt to dereference a null pointer when setting up a queue if a VF was loaded.
Change: Gracefully handle no resources.
Introduced: 1.74.04.
Enhancements: ------------- 1. Request: FW - change ETS default settings to fairness between traffic classes (rather than strict priority).
Version 1.74.03 (Jun 11, 2012) ============================== Internal FW 7.4.6
Fixes: ------ 1. Problem: After MTU change queue statistics are not consistent.
Change: Corrected Statistics preservation when clearing the fp struct.
Introduced: 1.74.02.
Relevance: All.
2. Problem: EEE ethtool options could not work in Multi function mode.
Change: pass eee support information through shmem2.
Introduced: 1.74.02.
Relevance: EEE flow.
3. Problem: CQ63654 - When using 'native_eee' with high enough value, interface does not work properly.
Change: Verify native_eee value is within correct bounds.
Introduced: 1.74.02.
Relevance: EEE flow.
4. Problem: CQ61938 - Under heavy iSCSI traffic when TCP out-of-order conditions occur, fw might send NOP-OUT commands with zero-length TCP window. This will eventually cause the connection to close and be recovered.
Change: (FW iSCSI) Firmware fix in TCP out-of-order mechanism.
Change: (FW iSCSI) Firmware fix in on-chip TCP establishment.
Introduced: 1.74.01.
Relevance: All.
6. Problem: CQ62937 - iSCSI connections on-chip TCP graceful termination fail is OOO isles exist when TCP CLOSE ramrod is sent.
Change: (FW iSCSI) change TCP CLOSE ramrod status code when OOO isles exists.
Introduced: 1.64.00.
Relevance: All.
7. Problem: If IGU parsing failed due to bad IGU configuration, probe phase crashed.
Change: Fail gracefully the probe phase.
Introduced: day 1.
Relevance: All.
8. Problem: CQ63681 - bnx2x crash after port is configured with 1.74.02. CQ63755 - bnx2x panic when bring up a link. CQ63785 - Intermittent Driver Assert after configuring IP/Vlan information on device. The root cause is insufficient gate closure between the NIG to the BRB during link flap avoidance. It used to rely on specific filters, which didn't capture all traffic.
Change: Close the NIG-BRB gate during LFA reset to prevent packets flowing in before BRB is reset.
Introduced: 1.74.02.
Relevance: All.
Version 1.74.02 (Jun 03, 2012) ============================== Internal FW 7.4.4
Fixes: ------ 1. Problem: Possible crash when doing ethtool -L while CNIC is up.
Change: Indicate the updated number of CIDs and ILT lines to CNIC during NIC load.
Introduced: 1.72.51.
Relevance: All.
2. Problem: Warning kernel logs might be displayed during probe, indicating that number of MSIX vectors in IGU is different than the value advertised in PCI config space. This warning can be displayed due to new scheme used in MFW T7.4.
Change: Remove that warning.
Introduced: 1.70.23.
Relevance: (1) MFW T7.4 is used AND (2) SRIOV is enabled in nvram AND (3) MF mode or 4 port mode is used.
3. Problem: Nic load takes long time and might fail when using MFW T7.4, as driver assumed wrongly that all status block advertised to it were allocated by the MFW (which is wrong with new MFW scheme).
Change: Assume number of status blocks is the minimum between the value advertised in PCI and the actual allocation found in IGU scan.
Introduced: 1.72.51 (when forcing of maximum 16 SBs was removed).
Relevance: (1) MFW T7.4 is used AND (2) SRIOV is enabled in nvram AND (3) MF mode or 4 port mode is used.
4. Problem: CQ63210 - Ethtool -A fails to change pause parameters correctly.
Change: Set requested flow control prior to the interface load.
Introduced: Day one.
Relevance: Boards with autoneg capabilities.
5. Problem: CQ63403 - Under low memory condition, there is a flow which may cause kernel to crash: 1. Device must be in operational state (UP). 2. Changing device parameter fails due to insufficient memory. 3. rmmod or 'ip link ethX down' leads to crash.
Change: Update state on memory allocation failure; prevent accessing uninitialized structure.
Introduced: 1.70.06.
Relevance: Low memory conditions.
6. Problem: CQ63429 - Probe fails due to memory allocation failure when using MFW T7.4.
Change: Move sp_objs, fp_stats and TPA structures out of fp structure, to force contiguous memory allocation to always be smaller than 128KB.
Introduced: day 1 with MFW T7.4.
Relevance: Low memory conditions.
7. Problem: CQ63630 - Packets smaller than 92 bytes ignored by kernel when MTU > 1500 on kernels 3.3 and above.
Change: Fix specific flow by updating skb properly.
Introduced: 1.72.04.
Relevance: All.
Enhancements: ------------- 1. Request: Added EEE (802.3az) support to 578xx boards with 84833 phys.
2. Request: CQ63159 - Add basic Link Flap Avoidance support. Whenever link toggles, the requested link parameters are saved in a shared memory and are used to determine the conditions for LFA to occur. LFA can be achieved only in case all of the following terms take place: 1. MFW release used is 7.4.2 and above. 2. Requested Link Speed, Duplex, Speed Capability Mask and Requested Flow Control are the same as the saved ones. Note that in case LFA conditions are not met, link should be re-initialized and flapped like before.
3. Request: When link speed is autoneg, and flow control selected is autoneg as well, apply the RX/TX parameters of the ethtool -A as the advertised ones.
4. Request: Alpha support of SRIOV. Bnx2x can now drive a regular physical function, an sriov virtual function, or a hyper-visor physical function. This is determined according to: 1. If num_vfs module parameter is supplied then the pf is a hyper visor. In the proper environment (kernel version, iommu, flr capabilities, etc) it will add 'num_vfs' virtual functions to the pci device tree. If the environment is not SRIOV friendly the PF will act normally. 2. If the chip-id belongs to a virtual function then the function is a VF and the driver will treat it as such. Such devices can only be created in the fashion described above. 3. Otherwise, the function is a normal PF.
Version 1.74.01 (May 17, 2012) ============================== Internal FW 7.4.4
Fixes: ------ 1. Problem: CQ62902 - Unable to bring up device with single MSI-X vector.
Change: Fix HC hw configuration.
Introduced: 1.72.16.
Relevance: 57710/57711 only.
2. Problem: CQ62543 - SFP+ module's not responding to I2C request. This problem occurs when the MFW is reset during I2C operation, and cause the I2C bus for read error due to "Transaction Pending".
Change: Extend the I2C work-around such that on the last try, perform a SFP+ power reset to release this state.
Introduced: Day 1.
Relevance: 578xx SFI. This fix applies only for boards with SFP+ power disable option (nvm cfg 160).
3. Problem: If memory allocation for iSCSI OOO fails its napi object will not be deleted. In certain circumstances when memory allocation fails FCoE queue may not have napi object. After ethtool -L the number of napi objects to delete is wrong.
Change: Allocate napi object for all fp-s (no skip). Set the number of allocated napi objects within the napi_add function.
Introduced: Day 1.
Relevance: All.
4. Problem: Crash in IF-up if the driver was not compiled with CNIC. Possible memory shortage which may fail IF-up if the driver was compiled with CNIC.
Change: Correct QM allocation size.
Introduced: 1.72.51.
Relevance: All.
5. Problem: DCB priority was used to override inner vlan priority in SD mode.
Change: (FW) In SD mode only outer vlan priority will be overridden by DCB priority.
Introduced: Day one.
Relevance: 57712/578xx with DCB in SD mode.
6. Problem: Inner vlan was added in case of DCB priority even outer vlan is present in SD mode.
Change: (FW) In SD mode inner vlan will not be added due to DCB priority.
Introduced: Day one.
Relevance: 57712/578xx with DCB in SD mode.
7. Problem: Outer vlan was overridden by DCB priority even when working in STATIC COS mode and inner vlan was also present in SD mode.
Change: (FW ETH) In SD mode and STATIC COS mode outer vlan priority will be overridden by inner vlan priority.
Introduced: Day one.
Relevance: SD mode.
Enhancements: ------------- 1. Request: Remove the BCM_CNIC compile flag, make CNIC support in the bnx2x driver a run-time decision.
2. Request: TX_Fault support for SFP+ Modules on 578xx boards.
3. Request: Add support for UDP 4-tuple hash. Add support for setting UDP 4-tuple hash via ethtool -N. Add support for getting hash settings via ethtool -n. Update the README file and man page with the use of the ethtool -N command.
4. Request: CQ60633 - Support change of DCBX values from non PMF drivers, and not only from PMF drivers. Note: Feature is supported only in MFW 7.4.1 and above.
5. Request: CQ62639 - Add support for dumping VPD data of SFP modules via ethtool command. Note: Feature is supported from kernel 3.4.0.
6. Request: CQ62871 - Indicate in the README file and man page that the 'ethtool -s ethX speed NNNNN' command can be used to set in NPAR mode the maximal partition speed without a system reboot.
Version 1.74.00 (May 01, 2012) ============================== Internal FW 7.2.51
Fixes: ------ 1. Problem: On RHEL 6.3, vlan cannot be created.
Change: Corrected compat.h for RHEL6.3.
Introduced: Day 1.
Relevance: RHEL6.3.
2. Problem: CQ62690 - in MF mode driver load fails for some of the interfaces due to memory shortage.
Change: Corrected doorbell allocation size.
Introduced: 1.72.51.
Relevance: All.
3. Problem: Possible crash in ethtool -d.
Change: Don't access VFC registers when online.
Introduced: Day 1.
Relevance: 57712, 578xx.
4. Problem: CQ62216 - Function may fail to load after UNDI boot.
Change: If pglue invalid address interrupt is set clear the 'was_error' bit in pglue.
Introduced: Day 1.
Relevance: All.
Enhancements: ------------- 1. Request: CQ62637 - When SFP (1G) optic module is plugged in, adjust the link speed and supported speeds accordingly.
2. Request: Add support for SW timestamping in transmit. Add ethtool operation for querying timestamping capabilities.
3. Request: Corrected prints on insmod for future 57840 B1.
4. Request: Integrate the upstream "bnx2x: remove some bloat" patch by Eric Dumazet turning many inline functions to regular functions.
Version 1.72.52 (Apr 19, 2012) ============================== Internal FW 7.2.51
Fixes: ------ 1. Problem: PMF does not update NCSI statistics.
Change: Driver now passes statistics to MCP whenever possible.
Introduced: 1.72.16.
Relevance: NCSI statistics (57712, 578xx).
2. Problem: CQ60448 - Rare case of no link due to missed interrupt may occur due to a race condition between acknowledging the IGU via the BAR and restoring the NIG interrupt mask via the GRC. A fix for this issue from 1.72.13 may be insufficient.
Change: Verify that the NIG attention was acknowledged specifically, otherwise if another interrupt was acknowledged on the same time, this check could have been missed.
Introduced: Day 1.
Relevance: All.
3. Problem: CQ62591 - Failure to compile driver with stop-on-error.
Change: Added missing parenthesis in SOE ifdefed code.
Introduced: 1.72.51.
Relevance: All.
4. Problem: Napi delete is done according to the current number of queues and not according to the original number of queues.
Change: 'Remember' the number of queues during init_one and use this number when deleting napi.
Introduced: Day 1.
Relevance: All.
5. Problem: Ethtool -L doesn't work with char device.
Change: In case of char device refuse ethtool -L operation (add a debug print).
Introduced: 1.72.04.
Relevance: All.
6. Problem: Idle check shows an error in the IGU when working in single MSI-X mode.
Change: Changed interrupt initialization - IGU is configured to SIMD prior to the initial ack.
Introduced: 1.72.16.
Relevance: 57712, 578xx.
Enhancements: ------------- 1. Request: Remove the limitation of 16 RSS queues and allow up to 64 (will be limited according to the number of MSI-X vectors in PCI configuration space). Change default number of queues to be 8 (rather than number of CPUs).
2. Request: Allow increasing the number of queues using ethtool -l above the number of queues that was defined in init_one.
3. Request: Support pci device ids of 57811.
Version 1.72.51 (Apr 03, 2012) ============================== Internal FW 7.2.18
Fixes: ------ 1. Problem: ethtool -d may cause chip to halt.
Change: Update registers list for the dump.
Introduced: Day one.
Relevance: 578xx only.
2. Problem: CQ61214 - network kdump fails.
Change: Functions release all hw locks they possess during probe.
Introduced: Day one.
Relevance: kdump.
3. Problem: CQ61763 - Parity recovery might fail on devices with two ports on the same path.
Change: Don't reset MACs on parity handling, as it caused resetting of blocks owned by the MFW (on the other port not running the parity recovery).
Introduced: Day one.
Relevance: 57710 + 57711 + 4 port devices.
4. Problem: Other driver unload flow checks whether doorbells are out of reset in the wrong reset register.
Change: Corrected the register checked.
Introduced: 1.72.13.
Relevance: All.
5. Problem: There is the case when the driver prevents configuration of additional MAC address.
Change: Fix broken process of looking for an empty MAC entry.
Introduced: 1.70.06.
Relevance: All.
6. Problem: VPD extended data is not extracted correctly on old kernels.
Change: corrected VPD read to support non-zero starting position.
Introduced: 1.62.xx - where the device started to support longer VPD.
Relevance: Boards that require FFV reporting on machines with linux kernels older than 2.6.29.
7. Problem: Driver fails to compile on RHEL 6.3 pre-alpha.
Change: changed compat to prevent definition of functions that were backported into RHEL6.3 pre-alpha.
Introduced: Day 1.
Relevance: RHEL 6.3.
8. Problem: CQ61832, CQ62308 - Warnings seen in kernel log when running cnic test.
Change: Removed warning as it was logged in a legitimate flow.
Introduced: 1.64.20.
Relevance: All.
9. Problem: CQ62295 - LED is still ON after the PHY got reset from fan failure test case.
Change: Added work around to configure 84833 PHY to 1Gbps and all LEDs off before putting it into RESET status for hardware limitation.
Introduced: Day one.
Relevance: 84833 PHY.
10. Problem: CQ62298 - CNIC loses interrupts when working in INTA.
Change: Stop passing interrupts to cnic only when it is de registered.
Introduced: 1.64.07.
Relevance: CNIC Storage.
11. Problem: CQ62279 - Bandwidth Weight not working properly.
Enhancements: ------------- 1. Request: Wait for all 64 read tags from PCI to complete before performing parity recovery, instead of 32 tags as done today.
2. Request: Add support for external loopback test in ethtool self-test. When in MF-mode, indicate to the user that only online tests are performed. Reduce the number of tests by '1' in upstream version (as idle-check is not performed).
3. Request: Make the transmission queues adjacent (such that 'real_num_tx_queues' is the real number and there are no holes). Remove the workaround to flush all high queues during NIC load.
4. Request: Update CDU memory allocation to support up to 8 memory regions (rather than a single contiguous memory region). Reduce CDU ILT page size to 32KB.
5. Request: Add support to 57811.
6. Request: Change non-eth CIDs to start right after the eth CIDs (rather than at 48).
7. Request: In AFEX mode FCoE function should not be used for regular L2 traffic. Then the function memory print is reduced and its functionality limited to FCoE traffic only.
Version 1.72.17 (Mar 20, 2012) ============================== Internal FW 7.2.18
Fixes: ------ 1. Problem: Compilation failed on SLES10.x XEN kernels.
Change: Add MSIX defines if not defined in kernel headers.
Introduced: 1.72.16.
Relevance: SLES10.x XEN kernels.
Version 1.72.16 (Mar 19, 2012) ============================== Internal FW 7.2.18
Fixes: ------ 1. Problem: CQ62046 - No link on 57712 + 8727 designs in which the TX laser is controller via GPIO, after T6.0 drivers/MFW were loaded previously without reboot. On these designs the TX_LASER is enabled by logic AND between the PHY(through MDIO), and the GPIO. When old driver which doesn't support these designs is used, it disables the MDIO part, thus the GPIO control has no affect.
Change: Enable the TX_LASER on the PHY for those design to enable the GPIO control it.
Introduced: 1.62.01.
Relevance: BCM8727 designs with GPIO controlling the TX laser.
2. Problem: CQ62136 - boards get stuck after boot from SAN.
Change: Changed UNDI unload by incrementing the producer's ring by one each iteration.
Introduced: 1.72.13.
Relevance: boot from SAN.
3. Problem: Consistent statistics does not work for old FW.
Change: Statistics are kept locally, copied to shmem upon update.
Introduced: 1.72.09.
Relevance: firmware-version prior to bc 6.4.0.
4. Problem: FW sequence of requests to MCP is wrong after parity recovery.
Change: Learn sequence number from shmem in nic load step.
Introduced: 1.72.13.
Relevance: All.
5. Problem: PXP2 is in wrong state due to double initialization occurring after global parity, one from the driver and one from the MCP.
Change: Don't clear value of relevant register after resetting the MCP as a part of the recovery process to avoid the double init.
Introduced: MFW 7.0.45.
Relevance: All.
6. Problem: CQ62169 - XEN: Failed to bring up interface if the system can't allocate enough MSIX vectors.
Change: Disable PCI MSIX capability if pci_enable_msix fails.
Introduced: Day one.
Relevance: XEN kernel only.
Enhancements: ------------- 1. Request: Initiated FLR via MFW command no longer requires re-enabling the target read. This code can be removed since the MFW minimal required version for initiated FLR was updated.
2. Request: Remove BNX2X_MSG_CNIC debug level as it is not used.
3. Request: If the system can allocate at least one MSI-X vector - use it instead of failing to MSI or INTx modes.
Version 1.72.15 (Mar 12, 2012) ============================== Internal FW 7.2.18
Fixes: ------ 1. Problem: CQ62104 - Intermittent link failure on 5771x + 8727. The "Unapproved module" flag had an indirect impact on the fix for CQ62046, which ended up in no link.
Change: Clear "Unapproved module" flag in case only "warning message" is required for such modules (common case).
Introduced: 1.72.14.
Relevance: 5771x + 8727.
Version 1.72.14 (Mar 08, 2012) ============================== Internal FW 7.2.18
Fixes: ------ 1. Problem: Driver build fails on kernels with ARCH variable defined.
Change: Remove references to ARCH in Makefile.
Introduced: 1.72.13.
Relevance: All.
2. Problem: CQ62046 - No link on 57712 + 8727 designs in which the TX laser is controller via GPIO, after T6.0 drivers/MFW were loaded previously without reboot. This issue occurs since old drivers control the 8727 TX laser only by changing PHY register, and new drivers assumed this register had a default value, despite that this register is not actually controlling the TX laser in those designs. Note that this issue is not likely to occur because T6.0 driver don't support these kind of boards, and loading new drivers afterwards without reset, is not common practice.
Change: Check SW flag instead of querying the TX_DIS register.
Introduced: 1.62.01.
Relevance: BCM8727 designs with GPIO controlling the TX laser.
3. Problem: insmod bnx2x more than twice may causes MCP assert during initialization of device.
Change: Study MCP command sequence before sending first command.
Introduced: 1.72.13.
Relevance: All.
4. Problem: CQ62061 - No link on the second port of 57711 + 84823, since PHY was left in reset.
Change: Unreset PHY on the second port.
Introduced: 1.70.01.
Relevance: 57711 + 84823.
Version 1.72.13 (Mar 07, 2012) ============================== Internal FW 7.2.18
Fixes: ------ 1. Problem: TC-related warning message.with the additional call to upper stack to set real num of queues to 1.
Change: Reset tc during unload to avoid warning messages. Change the call to upper stack to set real num of queues to number of RSS (rather than 1) Move setup-tc back to be after setting real number of queues.
Introduced: 1.72.12.
Relevance: All.
2. Request: CQ61426 - 4-port device with 2x10G and 2x1G ports is displayed as 4x10G ports.
Change: Update the pci.updates and pcitable files which are part of the release process to map the pci ids of the 1G ports to corresponding 1G identification strings. Change the identification string of the entire device from 10G to 1/10G.
Introduced: Day one.
Relevance: 57800.
3. Problem: Debug print of 'ioctl received while the device is down' appears frequently on the debug log.
Change: Remove this debug print.
Introduced: 1.72.12.
Relevance: All.
4. Problem: CQ61720 - MDC/MDIO access timeout message may appear on driver load due to missing clock setting before resetting the LED.
Change: Relocate setting the MDC/MDIO clock before resetting the LED since this operation involves access to the PHY registers.
Introduced: 7.0.0.
Relevance: All.
5. Problem: When a TPA aggregation is open and a packet is accepted with timestamp OOO, the new packet begins a new aggregation instead of being indicated separately.
Change: (FW ETH) Fix the relevant firmware flow.
Introduced: 1.72.09 (FW 7.2.14).
Relevance: All.
6. Problem: CQ61596 - There exists a corner case where firmware will send out only a single 'pure ACK' (TCP acknowledgement segment that has no payload) while 255 or more 'pre ACKs' and a 'delayed ACK' are queued and awaiting transmission. The other ACKs in the queue are sent with a payload of one byte and all have identical sequence number and valid TCP/IP checksum. When the very next TCP/IP packet is sent for the offloaded connection, the receiver will trim a single byte off the incoming packet because of the ACK received with payload of one byte.
Change: (FW iSCSI) Fix the relevant firmware flow.
Introduced: 1.62.01 (iSCSI FW 6.2.1).
Relevance: iSCSI only.
7. Problem: FW statistics per queue does not increasing in queue counters, but properly increasing in device counters.
Change: Fixed lack of queue statistics update.
Introduced: 1.72.09.
Relevance: All.
8. Problem: CQ61763 - parity recover might fail on devices with two ports on the same path.
Change: Clear validity map of correct port before resetting MCP, as because of wrong clearance nic load after recovery can fail due to race between mailbox messages to MFW initialization process.
Introduced: day one.
Relevance: 57710 + 57711 + 4 port devices.
9. Problem: CQ60448 - Rare case of no link due to missed interrupt may occur due to a race condition between acknowledging the IGU via the BAR and restoring the NIG interrupt mask via the GRC.
Change: Make sure that the IGU ack command is completed before restoring the NIG interrupt mask.
Introduced: Day 1.
Relevance: All.
10. Problem: Wrong debug prints in self-test. Disturbing debug prints on BNX2X_MSG_ETHTOOL filter.
Change: Remove the problematic debug prints.
Introduced: 1.72.12.
Relevance: All.
11. Problem: CQ60042 - Flow control is not functional when OEM 57810s devices set to auto and evaluated via 1gb PT Module.
Change: Added code to handle CL37 AN when link is achieved via CL37 in 578xx-KR.
Introduced: T7.0.
Relevance: 578xx-KR.
12. Problem: CQ61967 - Compilation fails on RH when only kernel-devel package is installed.
Change: Fix Makefile to look for the kernel.
Introduced: Day one.
Relevance: All.
13. Problem: CQ61511, CQ61099 - Unable to bring up device without proper shutdown or device reset.
Change: Implemented a new scheme to unload existing driver at the probe and restore states.
2. Request: CQ61934 - Update default Tx Equalization settings for SFP+ mode after analysis at all PVT corners.
Relevance: 578xx SFP+.
3. Request: Remove `gro check' workaround from driver.
Version 1.72.12 (Feb 28, 2012) ============================== Internal FW 7.2.16
Fixes: ------ 1. Problem: 1G LED stays on with cable unplugged on 57712+8727 designs.
Change: Restored the MODE_LED_OFF mode to explicitly keep the LEDs off.
Introduced: 1.72.07.
Relevance: LED manipulation for 54616/18 and 8727 PHYs.
2. Problem: When getting / setting the number of queues via ethtool -l/L need to use 'combined' rather than 'rx'/'tx', as we we don't have independent rx and tx queues. The number of rings cannot exceed the number assumed during probe, as there will not be msi-x vector or napi object to the extra rings. When waking / starting the entire range of tx rings (which is 16*coses + non-ethernet) we may get old transmit requests on non-existing queues.
Change: Use the 'combined' field rather than the 'rx'/'tx' fields. Limit the number of rings to the number assumed during probe. When waking / starting the tx rings start only the 'real' rings (and not the entire range).
Introduced: 1.72.04.
Relevance: All.
3. Problem: CQ61532 - System halts when driver is loaded after fan failure has occurred. This can be seen also after reboot in fan failure status. This problem happens in 578xx only where the MFW stops the clocks which prevents the host to map the PCI IO registers to BAR0, and cause fatal error.
Change: MFW signals the fan failure by setting the PCI version number to 0xff (reflected in PCI address 0x8), thus allowing the driver to check this failure before mapping the bar. Fix requires MFW version 7.2.15 (and above).
Introduced: MFW 7.0.51 /MFW 7.2.0.
Relevance: 578xx boards with fan.
4. Problem: CQ61720: MDC/MDIO access timeout right after driver is loaded. This warning message is printed since the link periodic function is called before the link interface is initialized.
Change: Start link periodic function only after link is initialized.
Introduced: 1.70.12.
Relevance: All.
5. Problem: CQ61680 - 57810 KR link may not come up in 1G after running loopback test.
Change: Restore the 10G KR force register to their default value before starting KR autoneg.
Introduced: 1.70.00.
Relevance: 57810-KR when connected to 1G only link partner.
6. Problem: CQ61439 - when installing RHEL 5.7 on an iSCSI HDD, network interfaces get DMAE timeouts.
Change: When enabling IGU interrupts for INTA, also remove the INTA disabled bit in the pci command register.
Introduced: Day 1.
Relevance: BCM57712, BCM57810.
7. Problem: CQ61628, CQ61381 - PFC frames are not honored, due to incorrect link attributes synchronization which happen following PMF migration or remote-fault detection.
Change: Update link_status with the PFC_ENABLE flag on link update in addition to the pfc update function.
Introduced: 1.70.00.
Relevance: Multi-function(1.70.00) or SFP+ devices (1.72.07).
9. Problem: When decreasing the number of queues comparing to the previous load we may get old transmit requests on non-existing queues.
Change: Temporary and non-upstream solution: Add call to upper stack to set real num of queues to 1. This will flush all qdisc queues greater than 1. Move setup_tc to be before set_real_num_queues to prevent warning messages.
Introduced: 1.72.04.
Relevance: All.
Enhancements: ------------- 1. Request: Update debug prints to the appropriate mask. During probe use debug print which doesn't include eth%d. Add an error debug print when an error code (-Exx) is returned. Remove the 'releasing a lock on resource n" debug print. In debug prints put the printed string on a single line even if exceeding 80 characters. The updates described above were done only on the following files: bnx2x_main.c, bnx2x_cmn.c, bnx2x_cmn.h, bnx2x_ethtool.c, bnx2x_dcb.c, bnx2x_compat.h, bnx2x_stats.c, bnx2x.h.
Relevance: All.
Version 1.72.11 (Feb 21, 2012) ============================== Internal FW 7.2.16
Fixes: ------ 1. Problem: Memory leak in bnx2x_tpa_stop() if build_skb() fails while using the build_skb infrastructure.
Change: Fixed.
Introduced: 1.72.04.
Relevance: Only new kernels with build_skb support.
2. Problem: CQ61625 - Statistics code cause prints of BUG to dmesg.
Change: Missing checks in statistics code inserted.
Introduced: 1.72.09.
Relevance: All.
3. Problem: Unable to query/configure DCB parameters when in OFF state.
Change: Remove the limitation for the IOCTLs.
Relevance: DCBx supported devices.
4. Problem: CQ60873 - ethtool reports duplex/speed of closed functions.
Change: If closed function/link is down, then ethtool reports duplex/speed as unknown.
Relevance: All.
5. Problem: Ethtool allows forced speed of 20G to pass.
Change: Return -EINVAL on forced speed of 20G (unsupported).
Relevance: All.
6. Problem: CQ61601 - The FW version for 84833 PHY was captured incorrectly. As a result, the major number is always reported as '1'.
Change: Fixed to read the correct field of the PHY register.
Introduced: 1.72.04.
Relevance: 84833 PHY.
7. Problem: Removing driver causes NULL pointer dereference when trying to reset the Forwarding ring's non existent netdev queue.
Change: Only attempt to reset netdev queues for fastpaths that really have netdev queues.
Introduced: 1.72.07.
Relevance: iSCSI OOO.
8. Problem: CQ61564 - PFC statistics are ticking backwards.
Change: PFC statistics are now consistent, both with HW and with inner reload.
Relevance: BCM57712.
9. Problem: On rare cases, when link speed changes from 10G to 1G or lower, then remote fault may be reported.
Change: Check remote fault indication on link speed of 10G and above, since UMAC and EMAC do not support it.
Relevance: BCM578xx, BCM848x3, BCM872x.
Introduced: 1.72.07.
10. Problem: CQ61678 - System crash after running IO and pulling cable. Occurs since TX pipe is stalled due to missed XON indication (from MAC did to NIG). See related CQ56434 which fixed the problem for 57712.
Change: Force XON on NIG on link down/up.
Introduced: 1.70.00.
Relevance: 578xx.
11. Problem: FCoE capabilities values written to scratchpad are wrong, and doesn't match the values arrived from cnic.
Change: (FW iSCSI) Firmware fix to MSL timer tolerance.
Introduced: Day one.
Relevance: iSCSI.
13. Problem: Aggregation may stall TCP connection, since bytes to place on SGE improperly calculated.
Change: (FW ETH) Firmware fix to TPA flow.
Introduced: 1.72.09 (FW 7.2.14).
Relevance: All.
Enhancements: ------------- 1. Request: link read_status updates link partner's capabilities (fc, speed) whenever autoneg was used. New versions of ethtool output these capabilities.
Relevance: All boards with phys that support autoneg.
2. Request: Remove deprecated SAFC support from driver code. bnx2x proprietary SAFC support has been trumped out by upstream Multi COS support.
Version 1.72.10 (Feb 06, 2012) ============================== Internal FW 7.2.14
Fixes: ------ 1. Problem: Kernel crash while "ethtool -K lro off" during traffic.
Change: Use fp flag for TPA mode.
Introduced: 1.72.09.
Relevance: All.
2. Problem: GRO still on, while rx checksum is off.
Change: Update GRO feature according to checksum configuration.
Introduced: 1.72.09.
Relevance: All.
3. Problem: Unable to shut GRO on kernel with dev->hw_feature.
Change: Mark GRO as HW feature.
Introduced: 1.72.09.
Relevance: Feature supported on kernels above 2.6.39. On other kernels module parameter "disable_tpa" should be used to disable GRO.
4. Problem: CQ61214 - Network kdump fails on bnx2x device.
Change: Make driver to wait 5 sec when 'reset_devices' is on. This to allow HW to detect driver disappearance from normal kernel and properly initialize FW.
Relevance: Kdump environment.
5. Problem: Not all statistics are reset in MF mode upon close/open.
Change: Every function erases its function statistics' SP upon init.
Introduced: 1.72.09.
Relevance: Boards in MF mode.
6. Problem: WWN parameters are incorrect in FCoE SD mode.
Change: Properly load the parameters in FCoE SD mode.
Introduced: 1.72.08.
Relevance: FCoE SD mode.
Enhancements: ------------- 1. Request: When autoneg is on, ethtool -a outputs the pause configuration instead of the pause result.
Relevance: All boards with autoneg-capable phys.
2. Request: Remove redundant allocation-failure messages in places that there is already a similar message from the kernel.
3. Request: Write zeros to driver_version in NC-SI shmem structure, as it should not be supported under Linux at all.
4. Request: Clarify the driver defaults in the readme file.
5. Request: CQ58557 - Allow reading the external PHY FW from any driver instance even if it is not loaded since the value is stored in shared memory and does not require any locking or any special access.
Version 1.72.09 (Feb 01, 2012) ============================== Internal FW 7.2.14
Fixes: ------ 1. Problem: Possible soft-lockup in driver code.
Change: Release lock in case of error.
Introduced: 1.72.07.
Relevance: All.
2. Problem: Driver didn't mark in shmem that driver capabilities are supported, so MFW ignored those values.
Change: Mark in shmem feature is supported.
Introduced: 1.72.04 (when new NC-SI commands were added).
Relevance: BCM57712/BCM578xx.
3. Problem: CQ60672 - iSCSI boot fails in 57810+84833 NIC when running at 100HD link achieved via auto-neg.
Change: Added configuration to set MAC controller in half duplex mode when PHY links up in half duplex mode.
Introduced: Day 1.
Relevance: 578xx+848x3.
Enhancements: ------------- 1. Request: Statistics are consistent (i.e. not reset) when using operations which require an implicit nic_unload/nic_load. MTU change, LRO change, and self-test are examples of functionalities benefiting from this change.
Relevance: All.
2. Request: CQ61246 - update dropless_fc section in README.
Relevance: 57712/578xx.
3. Request: CQ59527 - Update README with handling low memory conditions on 32-bit platforms.
4. Request: CQ58302 - Update README and man page with regard to ethtool -L: The number of rx and tx rings should be the same, other and combined should be zero.
5. Request: CQ59122 - Added new TPA mode GRO. In this mode packets are aggregated such that the original packets can be reconstructed by the OS. All packets in the aggregation have the same ACK number and Timestamp.
Relevance: Kernels with GRO support.
Version 1.72.08 (Jan 24, 2012) ============================== Internal FW 7.2.11
2. Problem: CQ60808 - dcbxinfo prints 'DCB is out of sync'.
Change: Use driver flags as bit-mask.
Introduced: 1.70.17.
Relevance: DCBX capable devices.
3. Problem: FCoE/iSCSI interface initialization fails after recovery process.
Change: Enable driver to approach the chip during nic load performed at the end of the recovery process.
Introduced: Day 1.
Relevance: All.
Enhancements: ------------- 1. Request: Support FCoE SD mode.
Relevance: BCM57712/BCM578xx.
Version 1.72.07 (Jan 19, 2012) ============================== Internal FW 7.2.11
Fixes: ------ 1. Problem: CQ59723 - drv_pulse doesn't match mcp_pulse.
Change: Learn mcp pulse at nic load step instead of during probe step.
Introduced: Day 1.
Relevance: All.
2. Problem: CQ60838 - Occasionally the KR link does not come up.
Change: Invoke auto-neg restart at the end of the KR link configuration.
Introduced: 1.72.00.
Relevance: 578xx KR.
3. Problem: CQ61028 - No LED at 1G on 57712+8727 designs.
Change: Removed a logic error checking for a different PHY.
Introduced: 1.70.00.
Relevance: LED manipulation for 54616/18 and 8727 PHYs.
4. Problem: CQ60094 - soft kernel panic in bnx2x_execute_vlan_mac.
Change: Released consumed credits when removing pending commands.
Introduced: 1.72.00.
Relevance: All.
5. Problem: MAC addresses responded to mcp for get_drv_info request are not aligned as requested by MCP.
Change: Align MAC addresses appropriately.
Introduced: 1.72.00.
Relevance: 578xx.
6. Problem: BCM84833 is able to link up when link speed is set to 10G force while link partner is set to 1G force.
Change: When requested speed is 10G force, advertise only 10G speed.
Introduced: 1.70.00.
Relevance: BCM84833.
7. Problem: Unable to load device when CNIC is not selected.
Change: Fix feature initialization.
Introduced: 1.70.51.
Relevance: All.
8. Problem: If nic load fails after recovery flow, recovery is still marked as in progress, hence recovery flow will be performed again.
Change: In such a case, detach failed function but mark that recovery has already been performed.
Introduced: Day one.
Relevance: All.
9. Problem: If failed during nic load, MISC register holding function status might hold wrong value, causing logical errors in parity recovery flow.
Change: Mark function as loaded in MISC register only if nic load succeeded.
Introduced: Day one.
Relevance: All.
Enhancements: ------------- 1. Request: CQ59363 - Display the link partner FC capabilities when FC is not autoneg.
Relevance: All.
2. Request: Added support for Byte Queue Limiting.
Relevance: Linux kernel version 3.3.
3. Request: CQ57932 - Add Tx-Fault link detection. In case TX errors are detected by the MAC layer, the elink will signal the OS that the link went down, and when the error is gone, a link up signal will be sent.
Relevance: BCM84823.
4. Request: Support Multiple Concurrent COSes on 57710/57711E devices. Reinstate 'pri_map' module parameter for controlling the mapping of Priorities to Classes of Service.
Relevance: 57710/57711E.
5. Request: Reinstate pri_map module parameter which allows direct user control over the mapping of skb priority to traffic classes.
Relevance: All.
6. Request: CQ60175 - Add Multiple RX filters support per NetQueue.
Relevance: ESX only.
7. Request: Change marking whether function is loaded or not in MISC register to be bitwise and not a global counter, so that MFW will be able to mark function as not loaded in case driver pulse is timed out (for physical device assignment).
Relevance: All.
Version 1.72.06 (Jan 17, 2012) ============================== Internal FW 7.2.11
Fixes: ------ 1. Problem: CQ60906 - nic loading after recovery flow failed due to DMAE timeout.
Change: Wait for DMAE completions inside nic load performed at the end of the recovery flow. Don't wait for DMAE completions during all recovery flow besides inside the nic load.
Introduced: 1.72.05.
Relevance: All.
2. Problem: CQ60731 - DCBX/VIC traffic is dropped after recovery flow.
Change: When running recovery flow on the non global leader, send driver load before performing the recovery and driver unload when the recovery process is done. By that, MFW will restore NIG values upon the driver unload at the end of the process.
Introduced: Day one.
Relevance: BCM57712/BCM578xx. Requires MFW 7.2.9 and above.
3. Problem: CQ58306, CQ58507 Intermittent KR link failure after link enable.
Change: Reset rx and tx path if link is not up.
Introduced: Day 1.
Relevance: 57810-KR, when MFW used is older than 7.0.48.
Enhancements: ------------- 1. Request: CQ57889 - Less memory is allocated for Rx buffers of 1G ports.
Relevance: BCM578xx 4-port only.
2. Request: Support FCoE capabilities command from CNIC. Once this command arrives store the values in appropriate scratchpad address.
3. Request: Add module parameter to enable support of tx-switching.
Relevance: BCM57712/BCM578xx.
4. Request: CQ57932 - Add Tx-Fault link detection. In case TX errors are detected by the MAC layer, the elink will signal the OS that the link went down, and when the error is gone, a link up signal will be sent.
Relevance: BCM57712/BCM57800/BCM57810 with BCM8727/BCM8726/BCM84833 PHYs.
5. Request: CQ60699 - Disable auto-grEEEn for 84833 PHY.
Relevance: 84833 PHY only.
Version 1.72.05 (Jan 10, 2012) ============================== Internal FW 7.2.11
Fixes: ------ 1. Problem: Ethtool statistics omitted function statistics when in Multi-queue, MF mode.
Change: Fixed.
Relevance: All.
2. Problem: CQ59825, CQ60741 - system crash during 'ethtool -t'.
Change: Fixed insufficient memory allocation.
Introduced: 1.72.04.
Relevance: All.
Enhancements: ------------- 1. Request: CQ55885 - Added recoverable/unrecoverable statistics for ethtool. Currently counting parity errors and panic_dump.
Version 1.72.04 (Jan 03, 2012) ============================== Internal FW 7.2.11
Fixes: ------ 1. Problem: bnx2x_panic does not show idle_chk prints.
Change: Fix idle_chk to print with NETIF_MSG_PROBE msg level.
Change: Treat missing TLVs as an error - do not configure the feature.
Relevance: DCBx supported devices.
3. Problem: The common PHY init function for 84833 was split, but the second half of the call was not invoked to capture the PHY FW version.
Change: Added code to invoke the second half. Also, use a different PHY register to collect the version info.
Relevance: 84833 only.
4. Problem: CQ60377 - Task was corrupted when working with CONF REQ.
Change: FCoE Firmware fix to relevant RX flows.
Introduced: 1.72.00 (FW 7.2.0).
Relevance: BCM57712/BCM578xx.
5. Problem: Compilation problem on kernel 3.1.6.
Change: skb_frag_dma_map was introduced only in kernel 3.2.0. bnx2x_get_rxnfc parameter change was introduced only in kernel 3.2.0.
Introduced: Day one.
Relevance: All.
6. Problem: Compilation problem with SOE enabled.
Change: struct sw_rx_bd contains 'data' member rather than 'skb'.
Introduced: 1.72.03.
Relevance: All.
7. Problem: DMA operations are waiting for completion during recovery flow.
Change: Return immediately that timeout expired when pending for DMA completion during recovery flow.
Introduced: day one.
Relevance: All.
Enhancements: ------------- 1. Request: use build_skb() kernel infrastructure in RX path.
2. Request: Use kcalloc instead of kzalloc when allocating arrays.
3. Request: Use a kernel ethtool function to build the default indirection table (supported from kernel version 3.2.0).
4. Request: Decrease stack size in NVRAM self-test function.
5. Request: Add support for getting and setting the number of queues via ethtool (using -l / -L options).
6. Request: Support 3 new NC-SI OEM commands (insert data requested from MFW).
7. Request: Support RH5.8.
8. Request: Use the 'unlikely' macro with the debug printk() macros (DP, DP_CONT, BNX2X_DBG_ERR) and with the BNX2X_DEV_INF macro.
9. Request: Protect bnx2x from races due to lack of RTNL lock protection between PFs in physical device assignment: 1. Added per PF HW lock for nvram accesses. 2. Added per PF HW lock for recovery reg accessed. 3. Modified Undi presence detection to verify doorbell queue block is out of reset and so under the per PF HW lock.
10. Request: When bnx2x is loaded on an engine where FW was already loaded verify FW matches loading driver (in Physical Device Environment FW may have been loaded by a different bnx2x from another VM).
Version 1.72.03 (Dec 20, 2011) ============================== Internal FW 7.2.10
Fixes: ------ 1. Problem: PFC in 4-port mode is not functional.
Change: Take port index into account when configuring NIG registers.
Relevance: 4-port + DCB devices.
2. Problem: CQ59565 - FW version does not show the VPD FFV when applicable.
Change: The chip VPD was extended and now it can be longer than 128B, while the driver failed the FFV read if the offset was larger than 128B.
Introduced: 1.62.xx - where the device started to support longer VPD.
Relevance: Boards that require FFV reporting.
3. Problem: CQ60236 - Possible false positive self-test idle check failure while performed under traffic on 578x0 B0: "ERROR UCM: FIC1_INIT_CRD is not 64".
Change: On 578x0 B0 the value of FIC1 can be different than 64 under traffic. The test was updated to reflect that.
Introduced: Day one.
Relevance: 578x0 B0.
4. Problem: No link detected at speed 100m AN connected to 10BaseT/100BaseTx switch.
Change: Remove the supported limitation from setting 100Mb speed.
Introduced: 1.70.100.
Relevance: 57712 + 84833.
5. Problem: CQ59823 - Driver hang when FCoE IO starts.
Change: (FW FCoE) Firmware fix to data transmission flow.
Introduced: 1.72.00 (FW 7.2.0).
Relevance: All.
6. Problem: CQ59828 - iSCSI connection fails to send write commands when NPAR-SD mode is enabled.
Change: (FW iSCSI) Firmware fix to TCP establishment flow of iSCSI connection.
Introduced: 1.72.00 (FW 7.2.0).
Relevance: 57712/578xx.
Enhancements: ------------- 1. Request: Support Basic Physical Device Assignment. Bnx2x was adapted to allow loading it in paravirtualized environment. This means: 1. Bus device function is obtained from Me register. 2. Wide bus sequence interruption by ZLR is avoided via the indirect interface only in E1. Post E1 chips use direct register access. 3. FLR final cleanup failure results in nic load failure (previously this was ignored).
Version 1.72.02 (Dec 08, 2011) ============================== Internal FW 7.2.9
Fixes: ------ 1. Problem: No link is established at 100M on 57712+84833 combination. 100Mb force is not supported, and is limiting the advertising speed for 84833 firmware version of 1.39 and older.
Change: Modify the advertised speed to include 100Mb even if this speed is not supported for current 84833 firmware version. Note however, that since 100Mb force speed is not supported, in order to advertise 100Mb, user will need to specify this speed explicitly as one of the advertised speeds when using the ethtool command.
Introduced: Since support of 57712+84833 is introduced.
Relevance: 57712/578xx + 84833.
2. Problem: 84833 PHY firmware size has grown to cause timeout on initialization. This leads to PHY misconfiguration due to PHY register clobbering between software and the PHY firmware.
Change: Extend firmware initialization timeout period for all ports.
Introduced: Day one.
Relevance: 84833 PHY designs with a single SPIROM
Enhancements: ------------- 1. Request: Add PFC tx/rx frames counter to port statistics exposed to ethtool.
2. Request: Support Ethernet statistics request from MFW, and forward iSCSI/FCoE statistics request to cnic.
3. Request: 84833 PHY FW team recommended a few changes when configuring the PHY: (1) Use super isolate feature when the PHY is no longer use (e.g. unloading driver). (2) Bring PHY out of super isolate mode as the last step of initialization.
Relevance: 84833 PHY only
Version 1.72.01 (Nov 30, 2011) ============================== Internal FW 7.2.9
Fixes: ------ 1. Problem: CQ57679 - "FATAL HW block attention set1 0x8" message in syslog when running ethtool -d under traffic.
Change: Remove registers which should not be read during traffic.
Introduced: Day one.
Relevance: ethtool -d under traffic.
2. Problem: CQ59765 - Link loss on 10G port after running ethtool test on 1G port, since the MAC loopback test was done on XMAC causing the 10G port to lose link.
Change: On 1G port, run UMAC loopback.
Introduced: 1.70.53
Relevance: 57800 only (2x10G + 2x1G)
3. Problem: CQ59828 - Unable to connect to iSCSI target in NPAR-SD mode.
Change: Allow setting MAC in NIG for NPAR-SD mode.
Introduced: Day one.
Relevance: NPAR-SD mode.
4. Problem: CQ59448 - Chip hangs when target sends FIN out-of-order or with isles open at the initiator side.
Change: Fin dropped if received out of order or with isles still open.
Introduced: 1.60.00 (FW 6.0.0)
Relevance: All.
5. Problem: CQ59904 - Unable to create VLAN interface on RHEL6.2.
Change: Adopt VLAN scheme to RHEL6.2 kernel.
Introduced: Day one.
Relevance: RHEL6.2.
Enhancements: ------------- 1. Request: Support iSCSI SD mode.
2. Request: Support DCBNL CEE calls on RHEL6.2.
Version 1.72.00 (Nov 13, 2011) ============================== Internal FW 7.2.7
Fixes: ------ 1. Problem: CQ59471 - DCBx does not work with NPAR on kernels with multi-CoS support.
Change: The DCBx negotiation result was not propagated to all functions.
Introduced: Day one.
Relevance: DCBx and kernels with multi-CoS (2.6.39 and above).
2. Problem: Compilation failed on SLES11SP2 beta7 kernel.
Change: Fix compat.h.
Introduced: Day one.
Relevance: SLES11SP2 beta7 kernel.
3. Problem: CQ59626 - set skb_record_rx_queue for FCoE ring out of range.
Change: Introduce fp->rx_queue and use it instead of fp->index.
Introduced: 1.70.53.
Relevance: FCoE + kernel with skb_record_rx_queue support.
4. Problem: CQ59651 - GRC-timeout messages run in syslog.
Change: Fix race between two statistic-related flows by using local state in bnx2x_stats_handle().
Introduced: Day one.
Relevance: All.
5. Problem: CQ59454 - Port identify test fails on 54616 PHY.
Change: Updated driver to driver LEDs through MDIO for 54616
Introduced: T7.0
Relevance: 54616 PHY based boards.
6. Problem: In NPAR-SD mode on FCOE packets VLAN priority is not taken from DCB results, i.e. default priority is always used even if a change was negotiated.
Change: Fixed in FW 7.2.7.
Introduced: Day one.
Relevance: All.
7. Problem: CQ57927 - Chip hangs when a retransmission occurs which is not aligned to 4-bytes from the beginning of iSCSI PDU.
Change: Fixed in FW 7.2.5.
Introduced: FW 7.0.16.
Relevance: All.
8. Problem: Arrival of packets beyond task IO size can lead to crash.
Change: Fixed in FW 7.2.5.
Introduced: Day one.
Relevance: All.
9. Problem: CQ57933 - iSCSI does not support Traffic Class 2.
Change: Fixed in FW 7.2.3.
Introduced: Version 1.71.00.
Relevance: All platforms running DCB enabled with COS 2 and higher.
Version 1.70.200 (Nov 01, 2011) ============================== Internal FW 7.2.2
Fixes: ------ 1. Problem: CQ58580 System becomes unresponsive or unstable after running self test. This was due to kernel stack overflow by the self test during load/unload.
Change: Located stack-hungry code in the nic load flow and modified it to consume reasonable amount of stack.
Introduced: Day one.
Relevance: All Chips. This issue only occurs in low stack kernels - specifically kernels using 4kb stack depth such as 32bit PAE kernel.
Version 1.70.53 (Oct 24, 2011) ============================== Internal FW 7.2.2
Fixes: ------ 1. Problem: CQ58884: On 1G copper ports, the RX UMAC is not close to prevent arrival of partial segments during link reset process.
Change: Close the UMAC and the NIG RX during link reset process.
Introduced: T7.0
Relevance: 578xx.
2. Problem: Traffic blink rate LED is too fast.
Change: Adjust the blink rate to 578xx clock.
Introduced: T7.0
Relevance: 578xx.
3. Problem: CQ58887 - System with low memory PSOD when running mtu change.
Change: Switch between FP indexes in order to avoid mapping of FP with napi to to one napi-less, during memory allocation.
Introduced: Version 1.60.27.
Relevance: ESX-5.0.
4. Problem: Traffic LED blink rate for 10GBase-T designs is a bit slow.
Change: Adjust the slow clock counter in the PHY to increase the blink rate.
Introduced: T7.0: a fix for CQ56846
Relevance: 84823 and 84833 PHYs
5. Problem: CQ58996 - After 20 iterations of reboot test, adapter does not dcbx-sync with switch.
Change: Perform hard reset to the XMAC during link establishment to clear possible left-overs.
Introduced: T7.0
Relevance: 57810/57800
6. Problem: CQ57952 - Chip consumes too much power in case of fan failure.
Change: unload driver and power down chip.
Relevance: 57810.
7. Problem: CQ58990 - KR link occasionally comes up at 1G when 10G is expected. This is exposed only when a previous software entity (e.g. MFW, prior to OS driver loading up) that owns the KR PHY left it at 1G.
Change: Keep auto-neg disabled while configuring the capability advertisement. Re-enable it after configuration is done.
Introduced: Day One
Relevance: 578xx blade designs.
8. Problem: skb truesize is under estimated.
Change: bnx2x allocates a full page per fragment. It should account in skb->truesize, the size of the fragment, not the used part of it.
Introduced: Day One
Relevance: All.
9. Problem: 84833 PHY FW command handler interface requires further refinement as they don't seem to work.
Change: Made further adjustments and consolidated the command handler routine (in anticipation for other commands besides auto-grEEEn)).
Introduced: Version 1.70.50.
Relevance: 84833 PHY.
Enhancements: ------------- 1. Request: Add LED functionality to 54618SE PHY based boards.
2. Request: Put 84833 PHY in super isolate mode regardless of the strapping pin. The PHY stays in this mode until driver is loading up.
Relevance: 84833 PHY only.
Version 1.70.52 (Oct 04, 2011) ============================== Internal FW 7.2.2
Fixes: ------ 1. Problem: CQ58418 - WoL does not work after driver unload.
Change: The PME was not enabled in the configuration space.
Introduced: Day one.
2. Problem: CQ58516 - DCBX ioctls return without error on non-DCB capable devices.
Change: Check DCB state in IOCTLs code.
Introduced: 1.64.00.
Relevance: Non-DCB capable devices.
3. Problem: Compilation failed on RHEL6.2 kernel.
Change: Fix in compat.h.
Relevance: RHEL6.2 - alpha.
4. Problem: Lack of handling some HW failure indications.
Change: Fix improper initialization of mask register.
Introduced: 1.60.00.
Relevance: 57712/578xx only.
5. Problem: bnx2x_dcbnl_get_cap returns error for DCB_CAP_ATTR_DCBX.
Change: Add missing brake statement.
Relevance: DCB capable devices.
6. Problem: CQ57274 - Zero queues are used when num_queues was set to -1.
change: Make sure num_queues is treated as unsigned number.
Relevance: All.
7. Problem: Unable to change the speed with ethtool while using DAC (direct attached cable).
Change: The port was matched against fiber only without considering DAC.
Introduced: Version 1.60.28.
Relevance: Optic ports with DAC.
Enhancements: ------------- 1. Request: Immediately return an error from the bnx2x_cnic_sp_post() if we are in the middle of the parity error recovery flow. This will significantly speed up the CNIC_STOP command flow when called in the parity recovery context.
Relevance: CNIC only.
2. Request: Allow DCBNL functionality for RHEL6.1 and RHEL6.2.
3. Request: Changed 'pri_map' module parameter to control mapping from priority to traffic class instead of deprecated role in SAFC configuration.
Version 1.70.51 (Sep 13, 2011) ============================== Internal FW 7.2.2
Fixes: ------ 1. Problem: Forced 100M speed cannot pass traffic with 578xx+84833.
Change: Configure the Warpcore to SGMII auto-neg when interfacing the 84833 PHY.
2. Problem: Cannot establish link with 84833 PHY using PHY FW v1.27.
Change: The FW has been changed to fully support superisolate mode. That requires the PHY initialization sequence to change.
Introduced: Day 1
Relevance: 84833 PHY, PHY FW v1.27 is required.
3. Problem: Overflow occurs during init, when generating statistics ramrod toward the FW (writing to index outside of array bounds).
Change: Increase number of elements in the array inside struct bnx2x_fw_stats_req.
Introduced: Day 1.
Enhancements: ------------- 1. Request: Collect FCoE statistics from FW (both offloaded and non offloaded), and add them to the statistics response toward the MCP in NPAR-SD mode. These statistics are not counted in the ones published to ethtool.
Relevance: 57712 + 578xx.
Version 1.70.50 (Sep 08, 2011) ============================== Internal FW 7.2.2
Fixes: ------ 1. Problem: MC assert while initializing iSCSI on some 57711E boards.
Change: Adjust iSCSI license at bnx2x_open.
Introduced: 1.64.00.
Relevance: 57711E.
2. Problem: CQ57274 - kernel panic when trying to load bnx2x with negative amount of receive queues.
Change: Changed all module parameters from integer to unsigned integer.
Introduced: Day 1.
3. Problem: CQ58271 - Improper array initialization in call to get_dcbx_params_ioctl.
Change: Take array size into account when data is copied.
Introduced: 1.64.00.
Relevance: 57712/578xx.
4. Problem: Ethtool Advertised pause frame use don't show the pause capability when flow-control not set to autoneg.
Change: Display the advertised pause frame use even if flow-control is not set to autoneg.
Introduced: 1.70.27.
5. Problem: On-chip TCP connection establishment on iSCSI connections is broken.
Change: Fixed in FW 7.2.2.
Introduced: In FW 7.2.1.
Relevance: iSCSI only.
Enhancements: ------------- 1. Request: Reduce power consumption for 57810 fan failure by: * Powering down the Warpcore. * Kill clocks to all driver present blocks. * Clear BME(Bus Master Enable) and MS(Memory Space). Note that if fan failure occurs when using drivers released before this date will result in system crash.
2. Request: Prevent link flap on 1G copper ports when driver unloads in case the PHY is already initialized and link is up.
Relevance: 57800 + 5461x.
Version 1.71.00 (Sep 02, 2011) ============================== Internal FW 7.2.1
Fixes: ------ 1. Problem: Driver compilation failed on 2.6.38.x kernels.
Change: Fix compat for these kernels.
Introduced: 1.70.21.
2. Problem: Error messages "FATAL HW block attention set2 0x20" in the kernel log on specific systems.
Change: Recoverable LCRC errors due to not masking CPL_OF caused the print while it should be ignored.
Introduced: Day one.
Relevance: 57710 and 57711.
3. Problem: PCI scan could lead to GRC read.
Change: Second function indirect windows were not cleared by the driver since the driver used the port index before it was initialized and therefore cleared only function 0. Since the driver is not using these indirect windows, it will clear them all.
Introduced: Day one.
4. Problem: CQ57061 - GRC timeout messages appear on some systems during driver load.
Change: Take HW LOCK before resetting the HW, which prevents from undi_unload reading registers while block is in reset state.
Introduced: Day one.
5. Problem: Compilation failed on SLES11 SP1 update 1.
Change: Fix conflict on backported feature in bnx2x_compat.h.
Introduced: 1.70.20.
Relevance: SLES11 SP1 update 1 only.
6. Problem: The GPHY ports are not completely powered down on driver unload if the GPHYs have no external pins to bring them to reset state. As a result, their link partner may still see link.
Change: Put the GPHY in low power mode.
Introduced: 7.0.0.
Relevance: T0000G boards.
7. Problem: CQ56991, CQ57007 - PFC pauses non pausible traffic. This was because FW was configured to work in STATIC_COS on 57712 and 578xx regardless of kernel version. In kernels where multiple traffic classes are not supported this essentially blocked network traffic from being assigned any tc other than 0. If pausible traffic was assigned tc 0 the network traffic would necessarily collide with it.
Change: Configure FW to work in STATIC_COS only in kernels which support multiple traffic classes.
Introduced: 1.70.15.
Relevance: 57712 and 578xx on kernels before 2.6.39.
8. Problem: CQ57469, CQ57377, CQ56861, CQ57296 - CFC HW attention, XSTORM assert or kernel panic when changing the MTU under the TCP traffic (on the Tx side). Tx queues were stopped before bp->state was changed to a value different from BNX2X_STATE_OPEN, which allowed the bnx2x_tx_int() called from the NAPI context to re-enable it. This then allowed the netdev->ndo_start_xmit() to be called in the middle of the function reset and rings freeing, which caused the above failures.
Change: Change bp->state to a value different from BNX2X_STATE_OPEN BEFORE disabling the Tx queues in order to restore the protection against the above race in the bnx2x_tx_int().
Introduced: In 1.70.16 in the fix for CQ56438.
9. Problem: CQ57566 - During link down event "stats updated but no MAC active" messages appear in system log.
Change: Lowered the debug level of the message.
Introduced: Day one.
10. Problem: PMF migration during remote fault result in invalid link state.
Change: Sync link attributes during remote fault periodic check.
Change: Path correct parameter to netdev_alloc_ms()
Introduced: In 1.70.15
12. Problem: CQ57250 - The LED Link light does not turn on at 1Gb/s speed
Change: Adjust elink_set_led to allow for correct LED behavior.
Introduced: Day one.
Relevance: 578xx with direct connection.
13. Problem: CQ56820 - XMAC loopback (within "ethtool -t" test) may fail due to timing issue related to the CORE loopback type used.
Change: Change XMAC loopback to local line loopback.
Introduced: In 1.70.00.
Relevance: 578xx.
14. Problem: CQ57841 - NIG timer error and connection loss after driver is loaded.
Change: Apply NIG drain when remote fault is detected.
Introduced: In 1.70.00.
Relevance: Fiber ports.
15. Problem: CQ57738, CQ57719, CQ55158 - Remote fault detection occasionally causes link issues, and traffic problems.
Change: Remove remote-fault detection for T7.0.
Introduced: In 1.70.00.
Relevance: Fiber ports.
16. Problem: CQ56894 - packet drops during UDP stress test on 578xx.
Change: Recalculate thresholds configuration according to 578xx HW.
Introduced: In 1.70.00.
Relevance: 578xx.
17. Problem: CQ57842 - Message "Illegal configuration detected for Max BW" appears in syslog when link toggles.
Change: Adjust number of VNICs for 4-port devices.
Introduced: In 1.70.00.
Relevance: 578xx 4-port.
18. Problem: CQ56409, CQ57534 - Initiator periodically sends out Discovery Solicitation after login is established. This was caused by a missing VLAN filtering on the bnx2fc side. To enable such a filtering on the ESX bnx2fc needs to be aware of the currently configured VLANs on the CNA device.
Change: Expose the CNA VLANs configuration to the CNIC.
Relevance: FCoE on the ESX only.
Introduced: Day one.
19. Problem: Compilation failed on kernel-3.0.x.
Change: Fix compat.h.
Introduced: Day one.
20. Problem: Improper RX ring configuration showed in some case via ethtool -g.
Change: Store current device configuration and pass to ethtool handler.
Introduced: 1.64.14.
21. Problem: Degradation in latency benchmarks noted (multiple TCP_RR). This was because driver configured FW to use the same state machine for rx and tx indices in status block.
Change: Use.seperate state machines for tx and rx.
Introduced: 1.60.00.
22. Problem: Forced half duplex link may not be supported.
Change: Clear full duplex bit in Warpcore when configuring forced link.
Introduced: Day 1.
Relevance: 578x0 + 84833, no exposure to 54616S/18SE PHY because it is configured as SGMII interface, not XFI.
23. Problem: CQ56846 - 84833 PHY has no traffic LED on 10G.
Change: Enable LED stretch on a different register offset for 84833.
Introduced: Day 1.
Relevance: 84833 PHY.
24. Problem: CQ56813 - 84833 PHY can't link up at forced 100M
Change: PHY FW requires setting auto-neg advertisement even at forced link mode.
Introduced: Day 1.
Relevance: 84833 PHY.
25. Problem: 84833 can't link up at 10G after the link went down from sub-10G.
Change: Re-enable 10G advertisement on every driver load instead of relying on hardware default.
Introduced: Day 1.
Relevance: 84833 PHY.
26. Problem: 84833 PHY FW command handler interface changed (needed for (auto-grEEEn and RJ45 pair swap).
Change: Made register offset adjustments to accommodate the new interface.
Relevance: 84833 PHY.
27. Problem: CQ58086 - on 578xx B0 ETS BW 0% is not allowed by driver.
Change: Provide alternative HW configuration for this case.
Introduced: 1.70.00.
Relevance: 578xx with DCB support.
28. Problem: Driver allowed DCBX queries on non-pmf interfaces.
Change: Disable the queries on non-pmf interfaces.
Introduced: 1.70.00.
Relevance: MF devices with DCB support.
29. Problem: Driver may get out of sync with FW when UNDI is present.
Change: Init fw_seq after undi_unload is done.
Introduced: Day one.
30. Problem: GRC-timeout message may may appear in syslog during driver load. Change: 1. Remove access to removed registers in 57712/578xx. 2. Do not allow device reset while reading IGU HW block info.
Introduced: 1.64.00.
Relevance: 57712/578xx.
31. Problem: CQ57969 - The iSCSI traffic completely stops when dual port FCoE & iSCSI RX/TX is run.
Change: Fix wrong HW configuration. HW eas configured to per mac guarantee mode instead of per class guarantee mode.
Introduced: 1.70.00.
32. Problem: Compilation failed when FCOE selected but FCOELIB is not in kernel config.
Change: Fix #if condition.
Introduced: 1.70.00.
Relevance: Specific kernel configuration.
33. Problem: IP and TCP ECN related TPA aggregation rules do not comply with LRO requirements. Firmware followed requirements for RSC which are incompatible with LRO requirements: 1. Allow TPA aggregation even if TCP ECE and CWR flags are set. 2. Allow TPA aggregation only if IP ECN CE and ECT bits are either 00 or 11.
Change: Fixed in FW 7.2.0. Firmware now allows TPA aggregation only if: 1. TCP ECE and CWR are both 0's. 2. IP ECN CE and ECT bits are other than 11.
Introduced: Firmware version 6.4.0.
34. Problem: CQ56960 (iscsi) - Arrival of un-solicited ASYNC message causes firmware to abort the connection with RST.
Change: Fixed in FW 7.2.0.
Introduced: Firmware version 4.6.
35. Problem: CQ55751 - Setting advertise speed in ethtool is not working, and displaying "Advertised pause frame use" was incorrect.
Change: Fix ethtool functionality.
Introduced: Day one.
36. Problem: Device may not send pause frames when configured to pause on exhausted rings. This is seen when configuration of the TX side to "pause disable" and the RX side to "pause on exhausted ring".
Change: Fixed in FW 7.2.1.
Introduced: Firmware version 6.0.8.
Relevance: BCM57711/BCM57712/BCM578xx.
37. Problem: Arrival of target-initiated NOP-IN during intense ISCSI traffic might lead to crash.
Change: Fixed in FW 7.2.1.
Introduced: Firmware version 6.0.0.
Relevance: iSCSI only.
Enhancements: ------------- 1. Request: Add remote fault link detection for 578xx based on LSS errors in the MAC layer.
Relevance: 578xx.
2. Request: Added 54616 PHY support.
Relevance: 54616 PHY.
3. Request: Enable FEC (Forward Error Correction) on 57810-KR.
4. Request: Support vlan trunk mode in NPAR-SD mode. If that mode is active, set FW to silently remove all vlan in ingress packets.
Relevance: NPAR-SD mode only.
5. Request: Initialized NIG LLH registers to disable ACPI packet recognition and configure the ACPI patterns.
6. Request: Configure NPAR-SD function parameters via function update ramrod.
7. Request: Allow changing network cos mode after chip initialization, via a new slow path command.
Version 1.70.21 (Jul 25, 2011) ============================== Internal FW 7.0.23
Fixes: ------ 1. Problem: Warning about the pending bit coming from the VLAN_MAC object if parity error happens under the rtnl_lock().
Change: Clear the internal VLAN_MAC object pending bit if bnx2x_config_vlan_mac() is called with RAMROD_DRV_ONLY flag.
Introduced: Day one.
2. Problem: bp->sp_state bits stayed set forever set if there was a parity error under rtnl_lock()
Change: Clear bp->sp_state after interrupts are disabled.
Introduced: Day one.
3. Problem: No flow-control on 578xx when link is up at 1G and below.
Change: Add pause functionality to UMAC
Introduced: 7.0.0.
Relevance: 578xx
4. Problem: CQ56991, CQ57007 - Networking traffic priority was mapped to the COS configured at startup which was 0 by default. If FCOE or ISCSI were configured by DCBX negotiation result to COS 0 the network traffic would cause drops on a dropless traffic class and could foul up ETS or PFC.
Change: When DCBX negotiation result occurs configure all priorities other than FCOE and ISCSI to the Networking COS.
Introduced: 1.70.15
Relevance: 57712/578xx with DCB support.
5. Problem: CQ57063 - tx checksum offload feature would not turn off when 'ethtool -K eth tx off' was used.
Change: Since at startup bnx2x declares support for ipv4 and ipv6 checksum offload, connect the ethtool ipv6 set checksum premade op to the set_tx_csum op which affects both ipv4 and ipv6 instead of the ipv4 op which affects only ipv4.
Introduced: 7.0.0.
6. Problem: CQ56294 - Incorrect Remote fault detection may lead to link down on 5771x fiber devices.
Change: Fix LSS fault mechanism to detect remote fault and transmit local fault through the BMAC. This change requires leaving the BMAC out of reset in case link of 10G goes down
Version 1.70.20 (Jul 19, 2011) ============================== Internal FW 7.0.23
Fixes: ------ 1. Problem: CQ56950 - When speed is set to 1G on SFP+ device, link may fail to come up and system may hang due to incorrect initialization of the XGXS mode in the NIG.
Change: Fix typo.
Introduced: 1.70.13.
Relevance: 57712+8727 and 57711+87x6.
2. Problem: Possible race between Queues UPDATE from the NIV_FUNCTION_UPDATE and from VLAN HW stripping configuration.
Change: Move Queues UPDATE in NIV_FUNCTION_UPDATE flow to be executed from inside bnx2x_sp_rtnl_task (under rtnl_lock()).
Introduced: 1.70.14.
Relevance: NIV only.
3. Problem: Link down when running iSCSI reboot test.
Change: Ensure that PHY_TX_ERROR_CHECK_FLAG is asserted before error checking.
Introduced: 7.0.8.
Relevance: 57712 with non-optic phys.
4. Problem: CQ57055 - ESX doesn't support LRO on top of IPv6.
Change: Separate TPA queue configuration: introduce BNX2X_Q_FLG_TPA_IPV6.
Introduced: Day one.
Relevance: ESX only.
5. Problem: CQ57125 - Missing configuration for the FIP MAC in single function mode and for WWN in multi function mode.
Change: Add the missing configuration.
Introduced: Day one.
Relevance: FCoE only.
6. Problem: CQ56784 - LED doesn't flash during LED test.
Change: Add the missing configuration.
Introduced: Day one.
Relevance: 578xx.
7. Problem: During error handling "FW failed to respond" message appears.
Change: Add missing command from driver to FW.
Introduced: 1.70.08.
8. Problem: CQ56687 - Traffic LED do not blink under multiple OSes and dim.
Change: Enable LED blink and set rate.
Introduced: 7.0.0.
Relevance: 57712 + 8727.
9. Problem: Parity attentions clearing code didn't cover ATC and PGLUE_B blocks for 57712.
Change: Add the ATC and PGLUE_B blocks to the parity mask registers data base.
Introduced: Day one.
Relevance: 57712 only.
10. Problem: Parity errors recovery flow for 578xx was broken.
Change: Fix the above flow: - Add a separate column for the 578xx in the parity mask registers DB. - Fix the bnx2x_process_kill_chip_reset() to handle the blocks newly introduced in the 578xx.
Introduced: Day one.
Relevance: 578xx only.
11. Problem CQ56870 - ethtool -d (register dump) causes bnx2x panic on E3 boards.
Change Add support for E3 A0 and E3 B0 in register dump.
Introduced: Day one.
Relevance 578xx only.
Enhancements ------------ 1. Request: Fix the direction of the dma_sync() to synchronize towards CPU as it's supposed to be.
2. Request: CQ56857 - Add support for AutoGrEEEn using nvram configuration as default with module parameter to force it to on or off.
3. Request: CQ56737 - Disable TX_DIS Signal when SFP+ module is plugged out to prevent current leakage.
Relevance: 578xx.
Version 1.70.19 (Jul 13, 2011) ============================== Internal FW 7.0.23
2. Problem: Possible no link when DAC is connected to 578xx device
Change: Restart WC microcode after module is plugged in and detected.
Introduced: Day one.
Relevance: 578x0 only.
Version 1.70.18 (Jul 12, 2011) ============================== Fixes: ------ 1. Problem: CQ56434 - System crash after running IO and pulling cable. Occurs since TX pipe is stalled due to missed XON indication (from MAC did to NIG).
Change: Force XON on NIG on link down/up.
Introduced: T7.0.
2. Problem: 84833 PHY link does not come up. The extra PHY write to the auto-neg register is bringing the PHY to auto-neg failure, resulting in constant retry.
Change: Remove the extra write to this register when auto-neg is enabled.
Introduced: Day one.
Relevance: 84833 PHY only.
3. Problem: CQ56462 - Unable to get link on both ports on several systems.
Change: Initialize warpcore twice in succession.
Introduced: 1.70.03
Relevance: 578xx.
4. Problem: 84833 link still comes up at 10G even when configured to be forced 100.
Change: Properly calculate TX queue for FCoE L2 traffic.
Introduced: 1.70.15.
Relevance: 57712/578xx with FCoE.
6. Problem: Kernel warning messages regarding the attempt to access the Tx queue with index more or equal to netdev->real_num_tx_queues.
Change: Align the initialization of the netdev with the Tx multi-CoS logic.
Introduced: 1.70.15.
7. Problem: CQ56790 - During the loading of the bnx2x module there is an error indicating that the symbol bnx2x_dbg_buf could not be found.
Change: Declare bnx2x_dbg_buf as a non-static variable.
Relevance: ESX only.
8. Problem: Setting Warpcore registers may be ignored due to missing cycle in MDC/MDIO.
Change: On 578xx-B0, set free running counter on EMAC before each cl45 access, and clear it at the end. This is not done globally, to prevent clock collisions between the four MDIO masters (One per EMAC).
Introduced: Not applicable.
Relevance: 578xx-B0.
Enhancements ------------ 1. Request: Use vmalloc for a zlib inflate buffer.
2. Request: Remove unnecessary read of PCI_CAP_ID_EXP The PCIE capability offset is saved during PCI bus walking. It will remove an unnecessary search in the PCI configuration space if this value is referenced instead of reacquiring it. Also, pci_is_pcie is a better way of determining if the device is PCIE or not (as it uses the same saved PCIE capability offset).
3. Request: CQ56790 - Pass the mf_mode to the CNIC so that CNIC can determine if it needs to call the DRV_CTL_START_NPAR_CMD/DRV_CTL_STOP_NPAR_CMD to setup the NIG when in NPAR mode.
Relevance: ESX only.
Version 1.70.17 (Jul 05, 2011) ============================== Internal FW: 7.0.23
Fixes: ------ 1. Problem: PFC is not configured for ports 1,3 on 4-port devices.
Change: Enable the configuration for every port.
Relevance: DCBX, 578xx 4-port devices.
2. Problem: Warning message: "MDC/MDIO access timeout" on the first driver load. This warning appears during the link reset sequence, but it has no significant meaning, since it occur prior to the first phy initialization command.
Change: Adjust AER and CL45 clock during link reset sequence.
Introduced: Day one.
Relevance: 57712+8727.
3. Problem: "Soft lockup" errors. Caused by race between bnx2x_sp_task() and local IRQ both calling for napi_schedule(), which adds elements to a local NAPI list.
Change: Disable local IRQs when calling for napi_schedule() from bnx2x_sp_task().
Introduced: 1.60.17.
Relevance: FCoE only.
4. Problem: (CQ56741, CQ56744, CQ56697, CQ56590) "Soft lockup". Caused by race between dcb negotiation update flow and nic unload flow. The dcb update flow, which is an element in the sp work queue waits for rtnl lock in order to call bnx2x_setup_tc while nic unload flow which takes the rtnl lock waits for the sp work queue to be flushed.
Change: The dcb negotiation update flow now schedules the call to the bnx2x_setup_tc on the rtnl_sp task.
5. Problem: Possible problems in using fcoe and iscsi concurrently. The same cid was assigned to both.
Change: Allocate each its own cid.
Introduced: 1.70.15.
6. Problem: Compilation failed on vanilla kernels below 2.6.33 when FCOE module is selected.
Change: Add appropriate #ifdef structure.
Introduced: 1.70.15.
Enhancements ------------ 1. Request: CQ56174 - Add AutogrEEEn support to 54618SE PHY.
Relevance: 578xx.
2. Request: Support sharing of PFC configuration between functions on the same port.
Relevance: MF devices with DCB support.
3. Request: CQ54245 - Add Operational DCB state to GET_DCBX_PARAMS structure.
Relevance: 57712/578xx with DCB support.
4. Request: Add ability to Enable/Disable DCB according to remote configuration/absence.
Relevance: 57712/578xx with DCB support.
5. Request: Add statistics ramrods to EQ resources accounting.
Version 1.70.16 (Jun 29, 2011) ============================== Internal FW: 7.0.23
Change: Change the ESX grcDump function to use the standard functions for disabling/clearing/enabling parity attentions.
Introduced: 1.70.15.
Relevance: ESX only.
2. Problem: CQ56438 - Tx timeout was hit when there was a parity error and offloaded drivers (bnx2i/bnx2fc) loaded. It takes too long for the offloaded drivers to close (CNIC_STOP) bnx2x disabled a carrier after the CNIC_STOP completed.
Change: Moved the bnx2x_tx_disable() call to be before the CNIC_STOP call.
Introduced: Day one.
3. Problem: When DAC (Direct Attached Cable) is used, there's not actual link down event on the far side since transmitter output is not disabled.
Change: Disable transmitter output when link is disabled. The same change in MFW (since v7.0.20) will cause link to stay down using earlier version of this software (CQ56652). This version and after fixes it.
Introduced: Day one.
Relevance: 57712+8727.
4. Problem: CQ53144 - Repeating "NOHZ: local_softirq_pending 08" messages in the syslog: NAPI softirq was scheduled on a local CPU but ksoftirqd wasn't invoked. This was caused by calling the napi_schedule() for the FCoE L2 ring from a workqueue and not from the ISR as it is supposed to, which caused the above phenomenon.
Change: Disable local softirqs before napi_schedule() call (local_bh_disable()) and then re-enable them (local_bh_enable()). This will invoke the ksoftirqd if needed.
Introduced: 1.60.17.
Relevance: FCoE only.
5. Problem: In MF mode, when DCBX enabled, ifconfig down of PMF function may cause stop traffic on other function.
Change: Use generic scheme when configuring HW and FW for DCBX; Protect function from going down during inappropriate state.
Relevance: MF, DCBX only.
6. Problem: CQ56292 - bnx2x assert dump when setting MTU to 9000. This was caused by an improper initialization of the fp->rx_buf_size for none-FCoE rings which led to improper initialization of BD buffer sizes for those rings.
Change: Fix the code that initializes the fp->rx_buf_size value.
Introduced: 1.70.08.
Relevance: FCoE on ESX only (CNA).
7. Problem: CQ56531 - Kernel crash due to page fault. Num of queues supplied to kernel erroneously included the iscsi queues which resulted with kernel choosing a transmission queue index beyond the boundary of the bxn2x's tx queues array.
Change: Supply the kernel with correct number of tx queues.
Introduced: 1.70.15.
Relevance: iSCSI OOO (since kernels 2.6.34 or Red Hat 6.0).
8. Problem: CQ56582 - BCM57810 may exhibit link down when connected to KR switch.
Change: Don't overwrite the value for other reg.
Introduced: 1.70.15.
Relevance: 578xx KR.
9. Problem: CQ56538 - DCBX: The PFC pause frames being sent have source MAC address of 00:00:00:00:00:00.
Change: Initialize source MAC address in the MAC
Introduced: Day one.
Relevance: 578xx.
10. Problem: CQ56507 - Panic Dump after DCBX negotiation completed.
Change: (FW) Fix TX queue allocation scheme and DCB related firmware flows.
Introduced: 1.70.15 (FW 7.0.19).
Relevance: 57712/57810A0/57840A0, when multiple-priorities is activated together with DCB.
11. Problem: CQ54938 - Driver asserts on CFC delete command, when running stress test against an Equalogic target, while issuing RESET_LUN commands.
Change: (FW iSCSI) Decrease activity counter in the cleanup flow, to compensate for later activity counter increase.
Introduced: 1.70.01 (FW 7.0.0).
Relevance: iSCSI.
12. Problem: Basic FCoE over NIV is not working when there is inner vlan on packet.
Change: (FW ETH) Fixed the flow in NIV mode to change a zero inner vlan vid to the NIV default vlan.
Introduced: 1.70.15 (FW 7.0.21).
Relevance: BCM57712/BCM578xx, only with NIV on packets with inner vlan.
13. Problem: CQ55328 - FCoE discovery does not work with ESX CNA device. The ESX stack would complain about the number of filters for the CNA NetQueue.
Change: Call netif_set_poll_cna() after the FCoE NAPI structure has been initialized.
Introduced: 1.70.08.
Relevance: ESX CNA only.
Enhancements ------------ 1. Request: Optimized the memory barriers usage in the slow path.
2. Request: Add AutogrEEEn support to 84833 PHY.
3. Request: Implement the netdev->ndo_fcoe_get_wwn().
Version 1.70.15 (Jun 22, 2011) ============================== Internal FW: 7.0.21
Fixes: ------ 1. Problem: Need to update references from 54616 PHY to 54618SE.
Change: Updated references from 54616 PHY to 54618SE.
Introduced: Day one
Relevance: No functional impact.
2. Problem: Need to update T0000G to enable AutogrEEEn by default.
Change: Updated T0000G to enable AutogrEEEn by default.
Introduced: Day one.
Relevance: T0000G boards.
3. Problem: Driver loading problems on 4 port device with active MF mode. Problem occurs due to wrong calculation of mailbox function.
Change: In 4 port mode, change calculation of BP_FW_MB_IDX to be: port_id + vnic_id*2.
Introduced: Day one.
Relevance: 4 port device (578xx) with active MF mode.
4. Problem: Wrong calculation of the available slow path elements. As a result possible false "ring is full" messages and failures of slow path commands.
Change: Fixed the above calculations.
Introduced: 1.70.12.
5. Problem: CQ56287 - STOP_ON_ERROR compilation was broken.
Change: Make the bnx2x_int_disable() function public.
Introduced: 1.70.13.
6. Problem: Compilation failed on 2.6.39 kernels.
Change: Fix compat for the kernels.
Introduced: 1.70.13.
7. Problem: CQ56325 - 57800 does not send LLDP frames.
Change: Enable DCBX for 4-port devices.
Introduced: 1.70.01.
Relevance: 578xx 4 port devices.
8. Problem: Storm clocks were not initialized properly in E3.
Change: (FW) Remove wrong clock initialization from init tool and move it to MCP.
Introduced: Version 1.70.13 (FW 7.0.20).
Relevance: BCM57800. Power-cycle of the device is needed in order to fix the Storm frequency, a regular driver update is not enough.
9. Problem: Possible race between writing event-ring element and updating the host-coalescing index.
Change: (FW) Fix the flow by sending host-coalescing index update only after the completion of the event-ring writing.
Introduced: Version 1.70.01 (FW 7.0.0).
10. Problem: Basic FCoE on NPAR-SD was not working.
Change: (FW-FCoE) Fixed the flow in NPAR-SD mode to add default vlan also when there is vlan with vid=0 on packet.
Relevance: BCM57712 and BCM578xx, only NPAR-SD mode.
Enhancements ------------ 1. Request: Propagate WWN info up to bnx2fc driver.
Relevance: FCoE only.
2. Request: CQ56040 - Enable DCBX on ESX5.0 and newer.
Relevance: ESX with DCB only.
3. Request: Honor BAM on KR NVRAM config for 578xx.
5. Request: Add fan failure detection for 578xx-SFI
Relevance: 578xx with fan mounted.
6. Request: Support multiple concurrent classes of service for network traffic. Support mapping of skb priority to traffic class and traffic class to transmission queue in kernel. Update said mapping according to multi class queue discipline and DCBX negotiaton.
Relevance: Kernel 2.6.39 or Red Hat 6.1.
Version 1.70.14 (Jun 14, 2011) ============================== Internal FW: 7.0.20
Fixes: ------ 1. Problem: Possible spurious cnic interrupt.
Change: Properly disable cnic sb.
Introduced: 1.60.00.
Relevance: (Theoretical) when CNIC is supported.
2. Problem: In NPAR-SD mode, VIF SET request for FCoE function takes more than 40 seconds to be completed and ACKed back to the MCP.
Change: Queue update ramrod sent to FCoE ring couldn't wait for completion in the same context. Therefore, don't wait for completion for this ramrod on FCoE ring.
Introduced: 1.70.00.
Relevance: FCoE in NPAR-SD mode.
3. Problem: In NPAR-SD mode, theoretically traffic can be dropped due to early VIF SET ACK sent back to the switch.
Change: Send VIF SET ACK from driver to MCP only after function update ramrod is completed + all queue updates ramrods are completed.
Introduced: 1.70.10 (when silent vlan removal was added).
Relevance: NPAR-SD mode.
Enhancements ------------ 1. Request: CQ53961 - Remove 10Mbps from 84833 PHY. Honor PHY speed attributes for 10/100. If the driver is set up to advertise only 10M, no speed capability will be advertised. And no link will be established.
Relevance: 84833 PHY based boards.
2. Request: Add definition for autogreen in eLink.
Relevance: 84833 PHY and 54618SE PHY based boards.
Version 1.70.13 (Jun 12, 2011) ============================== Internal FW: 7.0.20
Fixes: ------ 1. Problem: Driver might set NPAR-SD mf_mode even if that mode can't be set. Driver sets NPAR-SD according to value written to NVRAM, without considering error cases such as missing NVRAM images etc.
Change: Set mf_mode to NPAR-SD only if mac address in shmem is valid. If address in shmem is valid, then MFW performed all checks and found that mode as valid.
Introduced: Day one.
Relevance: NPAR-SD mode only.
2. Problem: Memory leak in during selftest. Driver mapped skb twice.
Change: Do it once.
Introduced: 1.70.09.
3. Problem: CQ55933 - ESX CNA enabled driver tries to configure Rx mode for an FCoE ETH queue for NICs that do not support an FCoE.
Change: Configure Rx mode for an FCoE ETH queue only for the NICs that support FCoE (57712 and newer).
4. Request: Added support for 2 queues on different CoSes in 57712 and 578xx A0.
5. Request: Performance improvements in order to resolve PCI bottleneck on short packet PPS test on multiple connections.
Version 1.70.12 (May 24, 2011) ============================== Fixes ----- 1. Problem: (CQ55655) WOL is not functional on functions 2-7.
Cause: Incorrect register configuration.
Change: Allow WOL via HW registers.
Impact: Introduced in 1.64.01.
2. Problem: Undefined device behaviour when bringing up more than 16 eth queues with CNIC enabled.
Cause: Resource management mechanism does not allow more than 16 queues without actual limiting the number.
Change: Limit number of eth queues to 16.
Impact: 57712 only.
3. Problem: Possible no link on 578xx SFP+.
Cause: Failed reading from SFP+ module EEPROM due to I2C register not returning acknowledge over successful operation.
Change: Add work-around of up to 3 retries in case of I2C failure.
Impact: 578xx SFI.
4. Problem: (CQ55748) Link loss during up/down test.
Cause: Race in driver code causes it to get out of sync.
Change: Fix assignment with the lock.
5. Problem: In NPAR-SD mode, iSCSI and FCoE MAC addresses for relevant functions are zero.
Cause: In NPAR-SD mode, iSCSI and FCoE MAC addresses were not taken from shmem for functions in which these protocols are enabled.
Change: If NPAR-SD mode is used and the function is iSCSI/FCoE enabled, read suitable MAC addresses from shmem.
6. Problem: In NPAR-SD mode, default vlan tag might not be silently removed by the FW.
Cause: default vlan value and mask sent to FW in function update ramrod (for NPAR-SD mode) includes 3 bits of priority.
Change: default vlan value and mask in function update ramrod will include only 12 bits of vlan id.
7. Problem: Parity recovery was broken.
Cause: Improper handling of starting and termination of the 'periodic_task'.
Change: Ensure that only a PMF is running a periodic task. Stop a periodic task when a function is shut down.
Impact: Introduced in 1.70.09.
8. Problem: Chip may crush under PF FLR.
Cause: Driver could get interrupt on a disabled function.
Change: (In FW 7.0.18) Fixed relevant firmware flow.
Impact: Introduced in 1.70.00 (FW 7.0.0)
9. Problem: Improper device behaviour on BE platform.
Cause: Use improper calculation for FW offsets.
Change: Use FW offsets instead.
Impact: Introduced in 1.64.01
Enhancements ------------ 1. Request: Add the ability to switch settings from one speed to another in the Warpcore without having to unload the driver.
Change: Add a routine to restore the Warpcore register settings back to default. The routine is called before configuring the Warpcore to the desired speed settings.
Impact: 578xx only.
2. Request: Separate the accounting of the context-less SP commands and those that complete on the FP Rx ring.
Change: As requested.
3. Request: Reduce loading time when not in hotplug flow.
Change: As requested.
4. Request: Updates the bnx2x_set_features() to handle loopback mode.
Change: When enabled, it sets internal-MAC loopback.
Impact: Backport from upstream.
5. Request: Add 20G supported display for ethtool.
Change: As requested.
6. Request: (CQ55781) Allow GDB script to poke at the hardware registers.
Change: As requested.
Impact: ESX only.
7. Request: Reduce number of pcie transactions in high PPS rate scenarios.
Change: (In FW 7.0.18) Changing Status block DMA to host to be read from RAM instead of 3 IMM DMA's. This reduces the number of transactions on PCI and resolves with faster replenishment of PCI credits, since we reduced the number of read modify write transaction on host cash lines.
8. Request: Use FW 7.0.18.
Change: As requested.
Version 1.70.11 (May 18, 2011) ============================== Fixes ----- 1. Problem: (CQ55251) "BAD MCP validity signature" shown when device hot-plugged.
Cause: Race between FW initialization and driver load.
Change: Let FW to complete initialization by adding msleep in driver.
2. Problem: TPA is not functional on platforms where CONFIG_NEED_DMA_MAP_STATE is not defined.
Cause: We used dma_unmap_addr_set() and dma_unmap_addr() macros for internal storing and for further retrieving of the DMA mappings which were then used for BDs configuration in the TPA Rx flow while dma_unmap_addr() will always return zero on the mentioned above platforms.
Change: Don't use the mentioned above macros in flows others than "map->unmap".
Impact: TPA only. Introduced in 1.70.09.
3. Problem: Compilation failed on SLES11 SP1 update 1.
Cause: Conflict on backported feature.
Change: Fix bnx2x_compat.h.
Impact: SLES11 SP1 update 1 only.
4. Problem: Wrong link LED when speed lower than 10G on 578xx devices.
Cause: Incorrect LED mode setting.
Change: Set correct LED mode setting.
Impact: 578xx devices only.
5. Problem: One queue is not selected for transmission in kernels below 2.6.38.
Cause: Incorrect mapping function.
Change: Fix compat to implement mapping similar to 2.6.38.
Impact: Kernels below 2.6.38 with multi queue support.
6. Problem: TCM, DMAE, PBF, TIMERS, XCM, DMAE parity errors were ignored, while still asserting the "close the gates" bit.
Cause: The appropriate bits were not checked when checking for parity errors.
Change: Added the missing bits handling to the parity recovery code.
7. Problem: Compilation failed on RHEL 5.7.
Cause: Conflict on backported feature.
Change: Fix in bnx2x_compat.h.
8. Problem: (CQ55312) DMAE timeout message shown in the syslog when loading the first function on the port.
Cause: BMAC was reset after the NIG-to-BRB channel was open and before the FW was initialized. This caused the parity error in TCM.
Change: Reset BMAC before opening NIG-to-BRB channel.
Impact: Introduced in 1.70.04.
Enhancements ------------ 1. Request: Optimize buffer mapping manipulations in the TPA flow.
Change: As requested.
2. Request: Don't use atomic bit operations unless needed.
Change: As requested.
3. Request: Propagate the CFC_DEL ramrod error code up to CNIC.
Change: As requested.
Version 1.70.10 (May 5, 2011) ============================== Fixes ----- 1. Problem: LRO failure in IPv6 case.
Cause: Erroneous calculation of lro_mss size for IPv6 case.
Change: Fix LRO MSS calculation in IPv6 case.
Impact: 57712 and newer IPv6 LRO only.
2. Request: Potential link issue.
Cause: Incorrect code alignment led to bad PHY struct initialization.
Change: Fix PHY struct initialization.
Impact: Introduced on 1.70.09.
3. Request: Potential inconsistent link state report towards OS.
Cause: Possible race between netdev->open() and link attention handling flows both reporting link state towards OS.
Change: Protect the link reporting code with the same locking scheme as used for the link state handling protection.
Enhancements ------------ 1. Request: Use FW 7.0.17.
Change: As requested.
2. Request: Employ silent vlan removal feature.
Change: Silent vlan removal use: 1. In NPAR-SD mode silently remove the default vlan. 2. In ESX Network Plug-in Architecture silently remove the NPA default vlan. 3. When DCB is enabled in kernels which don't treat vlan-0 as non-vlan use silent vlan removal to: a. Remove vlan 0 with priority 0 if non fcoe queue. b. Remove vlan 0 with any priority if fcoe queue.
3. Request: Do not add VLAN tag or modify the priority of an explicit vlan tag of packets with TC_PRIO_CONTROL value in the skb priority.
Change: As requested.
Version 1.70.09 (May 3, 2011) ============================== Fixes ----- 1. Problem: (CQ53629) System spontaneously reboots.
Cause: PCI/DMA address mapping error not properly handled by driver, which may cause chip to access improper addresses in host memory.
Change: Add proper handling for mapping errors.
2. Request: (CQ49132) Link seen as up when cable(mostly fiber) is not fully connected.
Cause : In this scenario, the physical link is up, while error are detected on the MAC layer.
Change: Add periodic check for LSS errors on the MAC layer, since they don't provide indication by interrupt.
Impact: Currently only 57712. Note that this fix will not discover a case where one of two wires of fiber cable is plugged out.
3. Problem: Storms get stuck shortly after a single-engine recovery.
Cause: Functions were not unloading against MCP in case of parity error thus later LOAD request was always returning a FUNCTION load code. This lead to improper HW/FW initialization.
Change: Added unloading against the MCP in case of parity error.
Impact: 57712 and newer only. Introduced in 1.70.06.
4. Problem: Kernel panic when handling egress UDP packet for which checksum offload has been requested.
Cause: The above case hasn't been properly handled in the code.
Change: Add a proper handling for the above case.
5. Problem: In case of VLAN removal of a first small packet in TPA aggregation, driver may access uninitialized address.
Cause: Firmware places a corrupted RX completion element in this case.
Change: (in FW 7.0.16) Fixed relevant firmware flow.
Change: (in FW 7.0.16) Fixed relevant firmware flow.
Impact: Introduced in 1.70.01 (FW 6.4.0). 578XX 4-port only.
8. Problem: (CQ53924) Ethtool Self Test fails loopback test.
Cause: Unmapping of dma memory was not performed before accessing it.
Change: Added unmap of the relevant memory.
9. Problem: MDC/MDIO access to Warpcore registers may fail with low probability.
Cause: Warpcore PCB controller may get stuck without having MDC free running in the system.
Change: Add work-around for 578xx-A0 by adding another write to the MDIO bus after each MDC access to the Warpcore. This will be fixed in HW for 578xx-B0.
Impact: 578xx.
10. Problem: (DCB)(CQ54899) PMF migration may cause DCB get out-of-sync.
Cause: Driver did not update port structure correctly.
Change: Fixed DCB update code.
Impact: Introduced in 1.70.06.
11. Problem: The following error is logged as soon as bnx2fcd service is started: "kernel: 8021q: device eth# has buggy VLAN hw accel".
Cause: Under Red Hat 6.1 the bnx2x was compiled assuming the netdev centralized handling of hardware acceleration exists in kernel.
Change: Changed the bnx2x to compile using the old scheme of handling of hardware acceleration in RH6.1.
Impact: RH6.1
12. Problem: (CQ53276) 578xx ethtool display and settings are not done per board type.
Cause: Missing distinctions between various Warpcore interfaces.
Change: Check Warpcore network interface during init stage, and update the supported network attributes accordingly.
Impact: 578xx
13. Problem: (CQ54552) System breaks once link is up after PMF migration when speed is 1G.
Cause: Missing synchronization flag between PMF and non-PMF which indicate the XGXS type, led to incorrect initialization once link is up after PMF migration.
Change: Initialize this flag during synchronization
14. Problem: ethtool will not show the correct media type after PMF migration and changing the SFP+ module type
Cause: Media type was not synchronized after it is changed
Change: Synchronize media type between PMF and non-PMF
Impact: SFP+ based boards. Introduce on 1.64.19
15. Problem: Over-current message displays with port0 instead of port1 on 57712 SFP+ devices.
Cause: 57712 port enumeration is per path.
Change: Set the correct port number of the over-current display message according to the device type.
Impact: 57712 with SFP+ boards.
16. Problem: Possible dead locks in slow path flows involving interface toggling.
Cause: vlan_mac object was using spin_lock() semantics instead of spin_lock_bh() semantics while it may be called under a spin lock with BHs disabled in the ndo_set_rx_mode() flow.
Change: Fixed the mentioned above code.
Impact: Introduced in 1.70.06.
17. Problem: A possible deadlock in flows involving the DMAE operations.
Cause: We protected the DMAE engine with mutex (suspends a task when lock can't be taken) in the bnx2x_issue_dmae_with_comp() function while it is also called under a spinlock in the ndo_set_rx_mode() flow.
Change: Protect the above DMAE engine with a spinlock instead of a mutex.
Impact: Introduced in 1.70.06. 57712 and newer in the NPAR mode only.
Enhancements ------------ 1. Request: Add preliminary support for E3+84833 to pass extlb_test. Caveat that both drivers must be loaded at this time to function correctly.
Change: As requested.
2. Request: Disable FCoE and DCB on unsupported platforms.
Change: Determine allowed platforms by kernel version.
Impact: FCoE/DCB.
3. Request: Add over-current check for 578xx
Change: As requested
Impact: 578xx
4. Request: Add default TX PMD settings (de-emphasis) for 578xx.
Change: Set the TX settings per PMD type (SFI/XFI/DXGXS/KR) according to DVT measurements to achieve optimal link.
Impact: 578xx.
5. Request: Use FW 7.0.16.
Change: As requested.
6. Request: Write driver version string to specified offset in scratchpad for NC-SI OEM commands.
Change: Read scratchpad offset from ncsi_oem_data_addr field of shmem2. Then, write driver version to appropriate offset.
7. Request: Remove zeroing of Ram0 from driver as it is performed by init tool.
Change: Removed relevant code and the defines.
Version 1.70.08 (Apr 11, 2011) ============================== Fixes ----- 1. Problem: Possible chip hang in case of parity error in QM.
Cause: QM was reset before PXP causing 'close the gates' to be de-activated shortly before resetting PXP, PSWRQ sends a write request to PGLUE, PXP is reset, PGLUE tries to read the payload data from PSWWR, but PSWWR does not respond. The write queue in PGLUE will be stuck, DMAE commands will not return.
Change: Change reset order of PXP and QM blocks so that PXP is reset before QM.
Impact: During error recovery flow of QM parity attention only. Introduced in 1.53.1.
2. Problem: Tx of a CNA netdev wasn't properly disabled.
Cause: Typo in a bnx2x_tx_disable().
Change: Fix the above typo.
Impact: ESX CNA only. Introduced in 1.64.13.
3. Problem: Fairness issue between functions 0, 1 and functions 2,3 on 57840 4x10G.
Change: Do not overwrites cnic_eth_dev->drv_state in bnx2x_register_cnic().
Impact: iSCSI and FCoE only.
5. Problem: Possible inconsistent rx_mode state for iSCSI L2 queue.
Cause: Both BNX2X_FILTER_ISCSI_ETH_START_SCHED and BNX2X_FILTER_ISCSI_ETH_STOP_SCHED bits might be set, which in line might cause the situation when the rx_mode that is finally configured is not the one that has been requested the last.
Change: Clear the already pending state when configuring the new one.
Impact: iSCSI L2 only.
6. Problem: (CQ51066) Link status in port mailbox indicates AUTONEG is disabled and no Serdes.
Cause: Link status was zeroed during link down state.
Change: Set AUTONEG and SERDES indications when needed.
7. Problem: Possible pending SP ramrod completion after FUNC_STOP ramrod is sent.
Cause: Missing protection when checking bits in bnx2x_wait_sp_comp().
Change: Added the protection with netif_addr_lock for the mentioned check.
Impact: Introduced in 1.64.00.
8. Problem: (CQ54422) Compilation Failed on RHEL 6.1.
Cause: Backported features complict.
Change: Adopt features in compat.
9. Problem: Potentioal race in NPAR-SD mode might cause sending of function update ramrod before function start ramrod is completed.
Cause: LOAD_DONE message to MCP is sent before function start ramrod. LOAD_DONE request starts VIF initialization process that ends with VIF_SET request from the switch that triggers function update ramrod.
Change: Perform function start ramrod before sending LOAD_DONE message to MCP.
2. Request: Integrate the upstream "Support for managing RX indirection table" patch by Tom Herbert implementing the support for ethtool -X/-x options.
Change: Integrated the mentioned patch taking into the account all remarks of the netdev people about this patch.
3. Request: Add 1G support for XFI serdes network interface type of Warpcore
Change: As requested
Impact: 578xx - XFI
Version 1.70.07 (Apr 04, 2011) ============================== Fixes ----- 1. Problem: TX fault LED doesn't work upon module validation.
Cause: Incorrect GPIO assignment.
Change: Fix GPIO setting that controls the TX fault LED.
Impact: 578xx - SFP+.
2. Problem: DAC may not link up.
Cause: Register read was missing after setting EDC mode.
Change: Read EDC register after setting it.
Impact: 578xx - DAC.
3. Problem: Parity errors prevent device from load on emulation environment.
Cause: Emulation environment limitation.
Change: Disable parity on emulation environment.
Impact: Emulation environment only.
4. Problem: Incorrect SFP+ module power setting.
Cause: Value was swapped.
Change: Reverse value to fit board scheme.
Impact: 578xx SFP+ when nvm cfg #160 is set.
5. Problem: When accept all TX packets is enabled (all TX packets are duplicated to both the physical and loopback ports), LSO traffic throughput is less than expected.
Cause: Firmware accounted duplicated LSO (and also some non-LSO) packets twice in the rate shaping algorithm, instead of only once.
Change: (In FW 7.0.15) Fixed relevant firmware rate shaping bytes calculation for duplicated TX packets.
Impact: Introduced in 1.64.01 (FW 6.4.0).
6. Problem: PF FLR while VFs are running may cause system to get stuck.
Cause: If VF FLR happens after PF is down, the VF may try to send an event message to the PF by mistake.
Change: (In FW 7.0.15) Fixed relevant firmware flow.
Impact: Introduced in 1.70.00 (FW 7.0.0).
7. Problem: When TPA is enable, tcp packets with erroneous length might add wrong bytes to packet.
Cause: Firmware didn't verify the packet length is equal Ethernet header + IP total length.
Change: (In FW 7.0.15) Added the required verification.
Impact: Introduced in 1.64.01 (FW 6.4.0).
8. Problem: (FCoE) FCoE on physical port 1 can't be enabled.
Cause: Wrong cos allocation.
Change: (In FW 7.0.15) Fixed relevant firmware flow.
Impact: 57810/57840 only. Introduced in 1.70.00 (FW 7.0.0).
9. Problem: (iSCSI) Chip hangs upon arrival of iSCSI packet with split digest.
Change: Add DCBX notification mechanism during PMF migration.
3. Problem: (DCB) Static configuration is not properly handled.
Cause: Static configuration flow does not handle HW interrupt, because of state where DCBX initialization performed.
Change: Move DCBX initialization to the end of nic_load.
Impact: DCBX involved flows.
4. Problem: (CQ53768) Kernel panic at bnx2x_cnic_reuse_ooo_pkt.
Cause: Wrong arithmetics on Tx HW consumer for a Forwarding ring.
Change: Fixed the above arithmetics.
Impact: iSCSI OOO only. Introduced in 1.64.00.
5. Problem: (CQ53347) Data does not validate reported while running Chariot for RH6.0 x64.
Cause: In case of VLAN removal of a first packet in TPA aggregation, firmware may add padding bytes in the middle of the packet.
Change: (in FW 7.0.14) Fixed relevant firmware flow.
Impact: Introduced in 1.70.00.
6. Problem: (CQ53523) System stuck during load/unload under traffic.
Cause: RX processor can get stuck in infinite loop when a set mac configuration is done during traffic.
Change: (in FW 7.0.14) Fixed relevant firmware flow.
Impact: Introduced in 1.70.00.
7. Problem: Link may not come up after SFP+ module plug in on BCM8726 based boards
Cause: Module detection was not triggered by module insertion, which may lead to incorrect setting of EDC mode
Change: Initialize AEU before collecting the group of signals in charge for generating interrupts
Impact: BCM8726 based boards Introduced in 1.52.50
8. Problem: (CQ54040) Unable to perform iSCSI login.
Cause: Missing iSCSI L2 and Netq MAC ramrods completion handling.
Change: Added a missing code.
Impact: iSCSI and ESX only.
9. Problem: bnx2x_func_state_change() and bnx2x_queue_state_change return a negative value while PENDING (1) value should be returned.
Cause: test_bit(nr, vec) returns all-F's if nr is a variable and the requested bit is set.
Change: Chaged test_bit(nr, vec) to !!test_bit(nr, vec) when nr is a variable.
Impact: Introduced in 1.64.08.
10. Problem: If MCP sends to driver second NPAR-SD event before first one handling is done, no NPAR-SD events will be handled since now on. Note that second event from MCP while first one is not done yet should not happen due to "one pending" mode, but it is good practice to handle both messages if such a scenario occures in some way.
Cause: drv_status field was checked to match exact value instead of bit masking the value to match various events.
Change: Check drv_status bits to know which NPAR-SD events should be handled.
Impact: NPAR-SD mode only.
11. Problem: (CQ52000 & CQ51697 Cont.) XAUI short detection mechanism only applies to 10G.
5. Request: Add a support for a parity errors recovery for 57712 and newer.
Change: As requested.
6. Request: Add MOD_ABS support for 578xx SFP+ modules
Change: As requested.
7. Request: Invert OPTRXLOS signal on SFP/XFP interface for 578xx
Change: As requested.
Version 1.70.05 (Mar 17, 2011) ============================== ***** This version does not support CNIC *****
1. Problem: (CQ53457) in MF mode actual TX max bandwidth differs from configured for the device.
Cause: non-pmf function has overwritten configuration according to 10G link speed in UP flow.
Change: Fix device load flow for non-pmf functions.
Impact: MF mode with link speed other than 10G.
2. Problem: (CQ5772) (NPAR) Some configuration of Bandwidth Weight and Maximum Bandwidth is not functional.
Cause: MAX algorithm timer was set to smaller value then MIN algorithm. In some cases this may cause under-run on the line.
Change: Increase MAX algorithm timeout from 100usec to 400usec.
Impact: Introduced in 1.64.09.
3. Problem: (CQ52834) (iSCSI) connection/login issues in DCBX environment.
Cause: Erroneous context override by firmware.
Change: (in FW 7.0.12) Fixed relevant firmware flow.
Impact: DCBX environment only.
4. Problem: (CQ53526) (NPAR) Driver asserts while running iSCSI/L2 traffic.
Cause: Forward channel configured for TX switching.
Change: Disable TX switching for FWD channel.
Impact: NPAR mode.
5. Problem: (CQ53414) bnx2x reports link down when loaded.
Cause: The code was set to report the link state on load time.
Change: Assume the link is down when loading and only report link up after loading.
6. Problem: (CQ53427) ethtool reports incorrect info for 10GE Passive Copper Cable connections
Cause: Cable type was not taken into consideration
Change: Determine port type using cable type information acquired from external SFP+ module if exists
Impact: SFP+ type
7. Problem: No fan failure notification when the fan failed and nvram option 83 is set to enabled.
Cause: The fan failure worked only for specific external PHYs and not according to option 83.
Change: Enable fan failure regardless of the PHY type if option 83 is set to enable.
Impact: No fan failure notification unless the PHY is SFX7101, BCM8073, BCM8481, BCM84823 or BCM84833 - other PHYs or designs without external PHY will not report fan failures (but the FW will stop the PHY).
8. Problem: Ethtool self test idle check tests erroneously for active connections.
Cause: 1. Input registers were confused. 2. Connection type bit offset has changed since 57712.
Change: Converted self test idle check to work with static record array Corrected register confusion and location of connection type.
Impact: Saved 18% off linux driver compilation time.
9. Problem: Rx and Tx coalescing timeout parameters are reversed.
Cause: Parameters passed erroneously between functions.
Change: Swapped parameters in function call.
Impact: Bug exists in all bnx2x versions supporting interrupt coalescing.
10. Problem: (CQ52887) Interrupt test using ethtool's self test fails.
Cause: The ramrod, RAMROD_CMD_ID_ETH_EMPTY, is used for both the interrupt test and NetQueue commands. When self test is ran, the NetQueue would always intercept this ramrod but not complete the command.
Change: Do not explicitly intercept the EMPTY ramrod in the netq code. Instead use the appropriate SP queue object to send the EMPTY ramrod.
Impact: ESX only.
11. Problem: ethtool shows the wrong port connected.
Cause: Dual media port presentation was swapped.
Change: Show the active port.
Impact: Dual media board.
12. Problem: (CQ53303, CQ52600) Firmware doesn't support FLR on both ports on the same path simultaneously on 578xx.
Cause: The Flr flow hold some variables only for the last port treated.
Change: (in FW 7.0.13) Added an array to hold separate variables for each port.
Impact: Only 578xx.
13. Problem: FCoE doesn't identify function in NPAR-SD mode.
Cause: FW use MAC classification.
Change: (in FW 7.0.13) Classify function according to ID.
Impact: Introduced in 1.70.01.
14. Problem: (iSCSI) Chip hangs upon arrival of iSCSI packet with FIN flag set.
Cause: Tstorm signals Ustorm to release same BRB block twice.
Change: (in FW 7.0.13) Fixed relevant firmware flow.
Impact: Introduced in 1.64.01.
Enhancements ------------ 1. Request: Add initial support for 1G over fiber.
Change: As requested.
Impact: 578xx fiber.
2. Request: (CQ50798) Add support for BCM8722.
Change: As requested.
3. Request: Allow set speed in NPAR mode when device still closed.
Change: As requested.
4. Request: Use FW 7.0.13.
Change: As requested.
5. Request: Use DCBNL app-list to store negotiated app tlvs.
Change: As requested.
6. Request: Add support for DCBNL peer information.
Change: As requested.
7. Request: Honor GPIO configuration values on Tx laser control, on top of existing EPIOs.
Change: As requested.
Impact: 578x0 SFP+ designs.
8. Request: Link support for Everest 57810 + 84833B0PHY.
Change: As requested.
Impact: Everest 57810 + 84833B0PHY combination can pass traffic for testing.
9. Request: Add SGMII support for a specific OEM design.
Change: Clear signal detect and configure internal PHY before BCM54618SE establishes link.
Impact: SGMII ports of 57800 only.
10. Request: (CQ52000 & CQ51697) Short on XAUI lanes on the MAC side of 8727 and 8706 PHYs needs to generate link down event.
Change: Tx fault detection has been added. In addition link qualification includes checking for Tx fault. The fault detection bit is read twice to clear any stale value.
Impact: 8727 and 8706 PHYs.
11. Request: Support added for E3 + 84833B0 PHY firmware upgrade.
Change: As requested.
Impact: E3 + 84833B0 PHY combinations.
12. Request: Disable Tx switching for 57712/578xx.
Change: As requested.
Impact: 57712/578xx in NPAR mode, ESX.
Version 1.70.04 (Mar 01, 2011) ============================== ***** This version does not support CNIC ***** Fixes ----- 1. Problem: (CQ53258) Ethtool self test fails loopback_test (offline) when run on the copper ports
Cause: Test was done over 10G rather than 1G, and test did not wait long enough for the link to come up
Change: When speed capability doesn't include 10G, then perform the self test using 1G. In addition, for PHY loopback test, wait for the link to come and not assuming it is already up.
Impact: 57800 copper ports
2. Problem: (CQ51134) NC-SI functionality dependant on Port initialization Sequence
Cause: During common init, the driver resets both BMACs such that if NCSI was enabled on the other port, it will stop working
Change: BMAC will be reset during port initialization only
Impact: 5771x with NCSI enabled
Version 1.70.03 (Feb 24, 2011) ============================== Fixes ----- 1. Problem: ethtool -t under heavy traffic may show idle_check error.
Cause: idle_check mistakenly reported error.
Change: Fix idle_check routine.
2. Problem: (CQ53143) Configuring a primary ETH MAC with ifconfig tool didn't clear the old MAC configuration.
Cause: Missing code that clears the old MAC configuration.
Change: Added a missing code.
Impact: Introduced in 1.64.00.
3. Problem: (CQ51593) Statistics are inaccurate on 578xx devices.
Cause: Improper handling data from MSTAT HW block.
Change: Fix data handling.
Impact: 578xx only.
4. Problem: "DMAE timeout" appears in syslog and chip halts.
Cause: Improper HW initialization sequence.
Change: (v2) Fixed relevant init sequence.
Impact: Introduced in 1.70.00.
Enhancements ------------ 1. Request: Translate 10G-Force KR and 1G-Force KR to autoneg with advertisement of 10G and 1G in accordance.
Change: As requested.
Impact: 578xx KR interface.
2. Request: Support NVRAM configuration of EPIO assignment on Tx laser control.
Change: As requested.
Impact: 578xx SFP+ interface, existing boards with this parameter unconfigured should still work using hardcoded default EPIO.
Version 1.70.02 (Feb 21, 2011) ============================== Fixes ----- 1. Problem: (CQ52452, CQ50960) VLAN stripping is not enabled for higher functions when function 0 is not up.
Cause: Function ID field was always set to zero in UPDATE ramrod data.
Change: Properly configure the above field in the ramrod data.
Impact: Multi-function only. Introduced in 1.64.00.
2. Problem: NULL pointer dereference in a flow of closing iSCSI L2 queue.
Cause: SW bug that caused cnic handler routine not to be called for CFC_DEL ramrod completion of iSCSI L2 queue.
Change: Fix the above SW bug.
Impact: iSCSI only. Introduced in 1.70.01.
3. Problem: (CQ52417), (CQ52845) Flow control doesn't work for 20G.
Cause: Flow control wasn't enabled for 20G.
Change: Set flow control on 20G according to settings.
Impact: 57840 20G.
4. Problem: (CQ52023) Driver asserts with HW attention.
Cause: Traffic type to priority/COS table was reset after link down by driver causing transmission on the wrong COS.
Change: (In FW 7.0.10) Removing the table in RAM from HSI section.
Impact: Introduced in 1.64.00 (FW 6.4.0).
5. Problem: System may crash when configuring some RX rings with TPA enabled and some with TPA disabled.
Cause: Firmware tries to do TPA also for the non-TPA clients.
Change: (In FW 7.0.10) Fixed relevant firmware flow.
Impact: Introduced in 1.64.9 (FW 6.4.15). BCM57710/57711/57711E only.
6. Problem: System crash under TCP traffic when driver is toggling TPA.
Cause: Firmware bug.
Change: (In FW 7.0.10) Fixed relevant firmware flow.
Impact: Introduced in 1.64.03 (FW 6.4.7).
7. Problem: Firmware aggregated packets with wrong checksum.
Cause: Firmware didn't check checksum as a requirement for aggregation.
Change: (In FW 7.0.10) Fixed relevant firmware flow.
Impact: Introduced in 1.64.0 (FW 6.4.0).
8. Problem: 10G-KR doesn't link up on an OEM design.
Cause: CL72 should not be disabled in KR environment.
Change: Removed codes that disables CL72.
Impact: 578xx 10G-KR.
9. Problem: Possible packet corruption when resetting the primary interface when there are VLAN interfaces configured for this interface.
Cause: VLAN HW acceleration (stripping) is configured after Rx packets are allowed at the end of netdev->open().
Change: Configure VLAN stripping in Client SETUP if there are VLAN interface already configured for this interface.
Impact: Kernels below 2.6.37. Introduced in 1.62.01.
10. Problem: System locks up after loading driver on 1Gb copper ports.
Cause: Incorrect interrupt acknowledge when link change occurs lead to interrupt storm.
Change: Acknowledge the interrupt correctly on 1G ports.
Impact: 578xx with 2x1G and 2x10 port. Introduced in 1.70.01.
11. Problem: When resetting/disabling link in 578xx boards output for TX PAUSE signal to the MAC is not disabled
Cause: Relevant register in the NIG is not cleared when link is disabled.
Change: Set value to 0 in that register if link is disabled.
Impact: 578xx.
12. Problem: BCM578xx may misconfigure the link on some OEM designs.
Cause: ELink determines 4-port mode strictly from the input pin, not from override register that MFW always configures.
Change: Changed to determine the 4-port mode by reading the override register.
Impact: 578xx.
13. Problem: Driver unload may halt under traffic fails.
Cause: Incorrect order of disabling XMAC.
Change: Close the XMAC RX path before issuing XMAC soft reset.
Impact: 578xx.
14. Problem: (CQ51417) ethtool -t may cause device to hang.
Cause: Race in interrupt handling during self test.
Change: Wait for SP completions in load flow to avoid the race.
Impact: Introduced in 1.64.01.
15. Problem: Drivers assert while transmitting packets.
Cause: Firmware lose packets synchronization during transmission (Xstorm Assert).
Change: (In FW 7.0.11) Fixed relevant firmware flow.
Impact: Introduced in 1.64.10. (FW 6.4.15). 57712/578xx only.
16. Problem: (CQ52536) Extra bytes might be added in the middle of the payload when a packet with padding after the TCP payload is received, while TPA is enabled.
Cause: Firmware wrongly places padding bytes on RX SGEs.
Change: (In FW 7.0.11) Fixed relevant firmware flow.
Impact: Exists in all previous versions. The problem will be exposed only in very rare case in which a device on the network pads the Ethernet packet to longer than 72 bytes.
17. Problem: "DMAE timeout" appears in syslog and chip halts.
Cause: Improper HW initialization sequence.
Change: Fixed relevant init sequence.
Impact: Introduced in 1.70.00.
18. Problem: ethtool -t fails on 578xx B0.
Cause: test accessed unexistent registers.
Change: remove improper access.
Impact: 578xx only.
Enhancements ------------ 1. Request: Remove support for 57710 emulation and FPGA.
Change: As requested.
2. Request: Add performance improvements to Ethernet TX flows in BCM57711.
Change: (In FW 7.0.10) Added optimizations in TX flow.
3. Request: Use FW 7.0.11.
Change: As requested.
4. Request: CQ52000 Short on XAUI lines between Everest 2 and 8727 PHY needs to generate link down event.
Change: Tx fault detection has been added. In addition link qualification includes checking for Tx fault.
5. Request: Collect FW TPA statistics: aggregations, bytes in aggregations and a number of aggregated network frames.
Change: As requested.
Version 1.70.01 (Feb 07, 2011) ============================== Fixes ----- 1. Problem: Potential wrong PHY initialization when loading the first function on a port, after another function from this port was unloaded.
Cause: In this case, the driver won't lock PHY access, which may cause MDC/MDIO collision.
Change: Initialize the lock flag on the probe stage, instead of the common and port init stage.
Impact: Multi-function mode.
2. Problem: CQ52212 8073PHY intermittently exhibits signs of disconnected devices upon loading/unloading.
Cause: Microcontroller and Driver both controlling Xaui Low Power Mode.
Change: Remove Driver control of Xaui Low Power Mode.
Impact: 8073PHY based boards.
3. Problem: CQ51624 PHY TXONOFF_PWRDN_DIS bit set to "1" instead of default 0 to prevent reset & power down of PHY.
Cause: When GPIO controls TX Laser on 8727 and 8706, turning off laser will put PHY in low power mode.
Change: Set TXONOFF_PWRDN_DIS accordingly.
Impact: 8727PHY and 8706PHY based boards with TX laser controlled by GPIO_0.
4. Problem: L2 TX LSO Packets with LLC-SNAP header and in-band VLAN header are corrupted (BCM57710/BCM57711/BCM57711E).
Cause: Firmware sends an illegal command, resulting with a corrupted header in such cases.
Change: (in FW 7.0.9) Fixed relevant firmware flow.
Impact: BCM57710, BCM57711 and BCM57711E only.
5. Problem: (iSCSI) Chip hangs when running iSCSI IOs bigger than 32KBs.
Cause: Firmware bug.
Change: (in FW 7.0.9) Fixed relevant firmware flow.
Impact: Introduced in 1.64.01 (FW 6.4.0).
6. Problem: 57710 constantly get a parity errors in PBF and TM blocks during TCP/UDP traffic.
Cause: False parity errors in the above blocks. PBF and TM blocks parity error attentions are not implemented in 57710.
Change: Don't enable parity attentions in the PBF and TM blocks on 57710.
Impact: 57710 only. Introduced in 1.70.00.04.
7. Problem: The atempt to configure iSCSI MAC address would cause a "NULL pointer dereference" error when CNIC module was loaded before L2 interface is opened.
Cause: iSCSI L2 MAC object was initialized before bp->slowpath memory was allocated (bp->slowpath was NULL at that stage). So, as long as the object used references to bp->slowpath memory, it caused the above error, when we tried to utilize it.
Change: Move iSCSI L2 MAC object initialization from bnx2x_cnic_probe() to the DRV_CTL_START_L2_CMD callback.
Impact: iSCSI L2 only. Introduced in 1.64.00.
8. Problem: iSCSI L2 queue wasn't receiving any packet.
Cause: Rx mode of this queue didn't have ACCEPT_ANY_VLAN option. Therefore FW filtered every packet by VLAN (assuming untagged frames having VLAN_ID 0) and as long as there were no HW VLAN acceleration configured, no frames were delivered to iSCSI L2 queue.
Change: Added ACCEPT_ANY_VLAN option to iSCSI L2 queue rx mode.
Impact: iSCSI UIO only. Introduced in firmware version 1.64.00.
9. Problem: (CQ52656) In NPAR mode "ethtool -t ethX" does not report error on some partitions while no link.
Cause: Link is not tested for non PMF partitions.
Change: Allow link testing for non PMF partitions.
Impact: NPAR mode only.
10. Problem: (CQ52402) In NPAR mode setting some speed via ethtool -s causes device to hang.
Cause: FW configured with illegal configuration.
Change: Limit allowed speed to range from 1%-100% of actual line speed.
Impact: NPAR mode only.
11. Problem: (CQ51417) Running ethtool -t causes the interface to hang.
Cause: Link test was checked according to 57711/2 scheme rather than 578xx.
Change: Test link according to the chip type.
Impact: BCM578xx.
12. Problem: Possible problems with buffers mapping in iSCSI OOO flow on kernels 2.6.34 and newer.
Cause: Improper mapping functions used (pci_xxx instead of dma_xxx).
Change: Use the proper mapping functions in the above flow.
Impact: iSCSI OOO only. Kernels 2.6.34 and newer. Introduced in 1.60.15.
Enhancements ------------ 1. Request: Add autoneg parallel detect and pause support for 578xx KR.
Change: As requested.
Impact: 578xx-KR.
2. Request: Use FW 7.0.9.
Change: As requested.
3. Request: Set default number of rx buffers to be divided equally between rx queues to decrease amount of pre-allocated buffers on systems with multiple CPUs.
Change: As requested.
4. Request: Configure a mini-jumbo (2500) MTU for FCoE L2 ring. Don't change it when NIC's MTU changes.
Change: As requested.
5. Request: Call for a cnic handler routine for CFC_DEL ramrod completion of iSCSI L2 queue.
Change: As requested.
Version 1.70.00.4 (Jan 19, 2011) ============================== Fixes ----- 1. Problem: VIF_LIST_GET request in NPAR-SD mode responded always with zero value.
Cause: drv mailbox param value was cleared after valid value was written, and therefore zero was read by the MCP and sent to the switch.
Change: Fix the logic.
Impact: NPAR-SD mode only.
2. Problem: Warpcore microcode wasn't loaded as image from nvram.
Cause: Non-clear loading sequence from the nvram forced loading microcode statically as temporary work-around.
Change: Warpcore microcode will be loaded solely from the nvram by the bootcode.
Impact: 578xx only; Requires bootcode 7.0.0.0/6.4.3 and above.
3. Problem: Statistics is not displayed correctly on 578xx.
Cause: Improper initialization.
Change: Fix initialization flow.
Impact: 578xx only.
4. Problem: NPAR-SD packets did not reach MCP after driver is loaded.
Cause: NIG registers initialization by the driver did not mark that NPAR-SD tag header can be included in rx packets, and overwrote value inserted by the MCP.
Change: Write correct value to that register in NPAR-SD mode.
Impact: NPAR-SD mode only.
5. Request: BCM8727 Link LED not functioning properly during BACS LED test.
Change: Not blinking correct link light.
Impact: BCM57712 + BCM8727 based boards.
6. Problem: (CQ51134) NC-SI functionality dependant on Port initialization Sequence.
Cause: When the driver loads the first port, some PHYs require reset and loading their microcode on both ports. In case NCSI was enabled on the other port, the traffic was stopped since PHY was reset.
Change: Load PHY microcode during common init, only if the PHY microcode wasn't loaded.
Impact: Requires bootcode 6.2.9 to resolve this problem PHY firmware upgrade will require reboot from now on.
7. Problem: (CQ51367) - BCM84823/84833 activity LED blinks at lower rate on 10G link.
Cause: The activity LED control registers are not configured right.
Change: Enabled activity LED stretch_en bit. Made activity LED blink on source.
Impact: BCM57712 + BCM84823/84833 based boards.
8. Problem: ESX - CNIC 'change MTU' would fail or result in a PSOD.
Cause: Mismatched module IDs for request/free IRQ.
Change: Masquerade as CNIC when cnic ops are called form bnx2x.
Impact: ESX only.
9. Problem: (NPAR, FCoE) FCoE MAC wasn't read in NPAR mode.
Cause: Missing code.
Change: Add the missing code.
Impact: FCoE in NPAR mode only.
10. Problem: (iSCSI) If iSCSI offload is requested in switch dependent MF mode zero MAC would be configured for iSCSI L2 queue.
Cause: Bug in a driver.
Change: Prevent the configuration of an illegal MAC.
Impact: iSCSI in switch dependent mode only.
11. Problem: (CQ51413) Driver crashed, when number of queues was set to a value smaller than a default one due to SAFC configuration.
Cause: Broken connection between an SAFC initialization and a memory allocation code.
Change: Fixed the above flaw.
Impact: SAFC only. Introduced in 1.62.06.
12. Problem: "Statistics sequence counter out of order" storm assert.
Cause: Race between the LINK_UP event handler and the timer which both are calling the bnx2x_storm_stats_post() thus sending consequent statistics ramrods without waiting for a completion of the first. Therefore FW will read the ramrod data of the second ramrod while handling the first one, which will cause the above assert.
Change: Prevent the above race.
13. Problem: Possible sending of a spurious MSI-X message after MSI-X is disabled.
Cause: MSI-X configuration wasn't properly cleared when MSI-X was disabled.
Change: Properly clear MSI-X configuration.
Impact: Introduced in 1.60.28.
14. Problem: Kernel panic when loading bnx2x with int_mode=1 and disable_iscsi_ooo=1.
Cause: INT#x ISR was scheduling iSCSI OOO ring's NAPI regardless NO_ISCSI_OOO flag.
Change: Consider NO_ISCSI_OOO flag before scheduling iSCSI OOO ring's NAPI.
Impact: Introduced in 1.64.07.
15. Problem: XSTORM assert due to wrong values in XSTORM RAM, occurring after turning up first interface on the other path (specifically traffic_type_to_priority_cos table was cleared in XSTORM RAM).
Cause: driver used to reset LCPLL in bnx2x_init_hw_common process, which is performed per each path. That configuration is not needed as it is done by the MCP, and is wrong because LCPLL is common and not per path.
Change: Remove that configuration from driver (it is done by MCP).
16. Problem: In NPAR-SD mode - DCBX configuration was not updated in FW.
Cause: Relevant implementation was removed as a workaround because of the side effects it caused. Those side effects were caused by two bugs resolved in this version (problem #12 and problem #15 above).
Change: Re-enable DCBX configuration implementation in NPAR-SD mode (remove workaround that prevented it).
Impact: NPAR-SD mode only.
17. Problem: 578xx B0 can't receive traffic in SD mode.
Cause: Inverted port configuration.
Change: Fix port configuration.
Impact: 578xx B0 only.
18. Problem: (FCoE) There was no licensing for FCoE.
Cause: Missing FCoE licensing handling code.
Change: Added the missing code.
Impact: FCoE only.
19. Problem: (NIV) VIF_SET ack was sent twice from driver to MCP and causing logic errors.
Cause: Wrong implementation that if bnx2x_func_state_change returns non zero value it is an error, while in fact only negative value is error.
Change: Assume error only if bnx2x_func_state_change returns negative value.
Impact: NPAR-SD only.
20. Problem: 57840: 4 port mode is not functional.
Cause: Incorrect initialization for this mode.
Change: Fix driver and FW (7.0.7) initialization.
Impact: 57840 only.
21. Problem: 57840: 4 port mode - Grc-timeout appears in syslog.
Cause: Statistics HW is not properly initialized.
Change: Init MSTAT1 correctly.
Impact: 57840 4 port mode only.
22. Problem: DMAE timeout after a few modprobe->ifup->rmmod iterations.
Cause: PGLUE_B was disabled before BMAC reset is completed.
Change: Fixed the relevant driver flow.
Impact: Introduced in 1.64.08.
23. Problem: a. rx error packets detailed in ethtool were increasing all the time while NPAR-SD session is up. b. rx error packets detailed in NPAR-SD protocol STATS_ARRAY_GET request were increasing all the time while NPAR-SD session is up (in UIF type request only).
Cause: all NPAR-SD messages reached host, but are destinated to vif_id of the MCP which is unknown to FW. Therefore, FW marks these packets as per port mf_tag_discard packets.
Yet, these per port statistics were also counted in PMF's per func statistics as rx error packets, and were also sent as rx error bytes in per port stats request of NPAR-SD protocol.
Change: a. Don't count per port mf_tag_discard/outer_vlan_discard packets as per func rx error packets of the PMF. b. Don't count per port mf_tag_discard/outer_vlan_discard packets as per port rx error packets sent in stats request of NPAR-SD protocol.
24. Problem: The module date was not updated since 2010/08/01.
Cause: The date was moved to another source file which did not updated it automatically on submission to the version control system.
Change: Update the file properties so the version control system will update the date automatically.
Impact: Introduced in 1.60.32.
25. Problem: 578xx unable to link after unload-load sequence.
Cause: Incomplete reset sequence.
Change: Fix reset sequence.
Impact: 578xx.
26. Problem: 578xx 4-port: load/unload test fails when compiled with CNIC.
Cause: Inappropriate client_id configuration for non eth clients.
Change: Fix initialization for 4-port mode.
Impact: 578xx 4port.
27. Problem: 57800 GPHY port (SGMII) LEDs don't work.
Cause: The LED setting routine is called only on 10G link.
Change: Call the LED setting routine even for non-10G link.
Impact: 578xx.
28. Problem: Unable to receive multicast frames on high functions in a multi-function mode.
Cause: approx_mcast_engine_id was not properly initialized in setup ramrod data.
Change: Fixed the relevant driver code.
Impact: Mutli-function mode only.
29. Problem: 578xx 4-port: load/unload test fails when compiled with CNIC.
Cause: Inappropriate client_id configuration for non eth clients.
Change: Fix initialization for 4-port mode.
Impact: 578xx 4port.
30. Problem: ifup returned error when device has illegal iSCSI mac.
Cause: FCoE/iSCSI features were enabled even with illegal mac.
Change: Disable the features if mac is illegal.
Impact: 57712 SF mode.
Enhancements ------------ 1. Request: CQ51710 - Disable CMS (common mode sense) feature in 84823 PHY, as this reduces power consumption and allows a better 10G link stability.
Change: Clear the CMS bit in PHY register in PHY configuration routine.
Impact: BCM84823B based boards.
2. Request: (CQ51889) Add Common Mode Sense (CMS) enable/disable functionality.
Change: Adding field 156 to nvm cfg, as well as support in eLink.
Impact: NVM config and Common Mode Sense capable PHYs.
3. Request: Increase RX ring size to 512 when using Jumbo Frames.
Change: As requested.
Impact: ESX only.
4. Request: Enable OOO by default and have the OOO ring match in size with a RX ring.
Change: As requested.
Impact: ESX only.
5. Request: Add statistics collection for NPAR-SD, and copy results to expected location in scratchpad if requested by the MCP due to request from the switch.
Change: Added NPAR-SD fields to qstats strcuture and collecting info for these fields each time stats are collected. When requested by the switch, writing relevant fields to exact location in scratchpad according to NPAR-SD protocol.
Impact: NPAR-SD enabled boards only.
6. Request: Support for 578XX B0.
Change: As requested.
7. Request: Use FW 7.0.8.
Change: As requested.
8. Request: Add dcbnl implementation supporting the FW DCBX engine.
Change: As requested.
Impact: 57712 only.
9. Request: Support SGMII with 54618SE GPHY for 57800.
Change: As requested.
Impact: Devices 3 and 4 of 57800 and small Warpcore changes only.
10. Request: Get all CNIC related info from shmem in the bnx2x.
Change: As requested.
Impact: iSCSI and FCoE only.
11. Request: Replace ethtool stats counter "rx_outer_vlan_discard" name with "rx_mf_tag_discard".
Change: As requested.
12. Request: Preserve temperature input setting for PCIE and Warpcore Serdes equalization logic.
Change: As requested, Warpcore initialization is now preserving that register value (no longer blindly overwrite it).
Impact: 578xx
13. Request: Support multi-function and DCBX in 4 ports mode (BCM578xx).
Change: (In FW 7.0.8) As requested.
Version 1.64.10 (Dec 7, 2010) ============================== Fixes ----- 1. Problem: (CQ50681) Device hangs on up/down test when PFC is enabled
Cause: If the device is going down while in PFC Xoff it will not set it to Xon and therefore, on the next load it will remain in constant Xoff
Change: Force PFC Xon when enabling the device
Impact: 57712 and 578xx
2. Problem: Tx packets are sent with wrong TCP checksum in case of TCP bi-directional scenarios
Cause: Firmware didn't update the L4/L3 checksum correctly in mixed traffic of packets with/without checksum offload
Change: Fixed the relevant firmware flow
Impact: Introduced in 1.64.08
3. Problem: A possible dead-lock situation between sch_direct_xmit() and bnx2x_run_loopback() (calling bnx2x_tx_int()) on netif_tx_lock()
Cause: Both functions above take a netif_tx_lock() but bnx2x_run_loopback() is called in a syscall context and takes a lock without disabling BHes on a local CPU, which may cause a dead lock as long as sch_direct_xmit() is called in a soft_irq() context
Change: Explicitly disable local BHes in bnx2x_run_loopback() to prevent a mentioned above dead-lock situation
Impact: Introduced in 1.60.25
4. Problem: (MF) ethtool -s speed has no effect in multi-function mode
Cause: Address calcutated using func_id instead of vn_id
Change: Fix address calculation
Impact: Introduced in 1.64.09, MF only
5. Problem: ethtool -t failed on sigle port boards and 57712 (nvram test)
Cause: Erroneous access to unexistent port info
Change: remove the access
6. Problem: All ingress packets were dropped by 57712 on Big Endian machines
Cause: Rx mode wasn't properly configured for 57712 on Big Endian machines
Change: Fix Rx mode configuration code for 57712
Impact: Introduced in 1.64.00, 57712 only
7. Problem: PCI bus error when trying to transmit LSO packets from 57712 on Big Endian machines
Cause: Parsing BD parsing_data field was malformed when running 57712 on Big Endian machines
Change: Fix the code handling the parsing_data field of a parsing BD for 57712
Impact: Introduced in 1.53.0a, 57712 only
8. Problem: Kernel panic when receiving in none-MSI-X interrupt mode
Cause: Indirection table was configured with none-existing queues when MSI-X was not attainable and RSS queues set was cut to a single queue. The reason for the above was an improper location of SAFC initialization code and usage of the SAFC parameters for the indirection table configuration despite the fact that an SAFC MF mode was not requested/not available
Change: Don't use SAFC parameters unless SAFC MF mode is requested
Impact: Introduced in 1.64.00
9. Problem: Single connection performance is much lower than expected in 57712
Cause: The firmware uses a malfunctioning bit in the HW for single connection optimization
Change: The firmware uses a different bit with similar functionality
Impact: Introduced in 1.64.00 when the optimization was implemented. Doesn't cause any penalty compare to older versions
10. Problem: (FCoE) An FCP_CONF frame was not transmitted when required
Cause: A confirmation indication was not handle properly if the task was from middle path type
Change: Fixed relevant firmware flow
Impact: FCoE only. Exist in all previous FCoE releases
11. Problem: CQ48350, CQ49176, CQ50911 and CQ51200. BCM57712 not linking up after wake on S4 and S5.
Cause: PHY firmware does not have enough time to download in 8073 and 8727 common init.
Change: Poll until firmware is downloaded, and then timeout at 300ms.
Impact: 8727 and 8073 PHY
12. Problem: Statistics were updated in wrong counters
Cause: The per-queue statistic address was miscalculated
Change: Fixed address calculation
Impact: Introduced in 1.64.00
13. Problem: Firmware assert will occur when LSO packets is duplicated in case Tx-switching is enabled and packet is sent without VLAN
Cause: Firmware looses synchronization with packet index which is enforced by firmware for debugging purposes
Change: Fixed relevant firmware flow
Impact: Introduced in 1.64.00
14. Problem: L2 packets which are duplicated in case Tx-switching is enabled may be counted twice in the Tx statistics
Cause: Firmware counts statistics each time a transmission command is sent to hardware, even if the duplicated packet was already sent
Change: Fixed relevant firmware flow
Impact: Introduced in 1.64.00
Enhancements ------------ 1. Request: Use FW 6.4.16
Change: As requested
2. Request: Integrate VLAN enhancements from the net-next
Change: As requested
3. Request: Use slow path function object mechanism to synchronize between function stop ramrod to NPAR-SD ramrods, instead of sleep work around in NPAR-SD mode used today
Change: As requested. Logic was added to function object
4. Request: Remove unrequired clearance of specific VIF from NIV VIF lists if that function is unloaded from host side (as anyway VIF_LIST_SET commands will be sent from switch).
Change: Don't call FW NIV_VIF_LISTS ramrod for the sub command of VIF_LIST_RULE_CLEAR_FUNC from the driver unload flow
5. Request: Use NIV_VIF_LISTS hsi new echo field to distinguish in ramrod completion flow for which sub command the respones is relevant, instead of using a bp dedicated field for that
Change: As requested (instead of using last_viflist_req_to_fw field).
6. Request: treat NPAR-SD driver_niv_support as a global shmem2 field, and write its value only in LOAD_COMMON flows
Change: As requested
7. Request: Add a support for TPA over IPv6 for 57712 and above
Change: As requested
Impact: Introduced in 1.64.10. 57712 and above only
8. Request: Support for forward connection traffic in NPAR-SD mode
Change: TX packets are sent with destination field, on NPAR-SD tag header, which is equal to the source VIF value
Impact: NPAR-SD mode is supported in BCM57712 only
9. Request: Enable Tx switching for 57712
Change: As requested
Impact: 57712 in NPAR mode only
Version 1.64.09 (Nov 18, 2010) ============================== Fixes ----- 1. Problem: CRC errors are seen with line-rate traffic on BCM578xx
Cause: Warpcore microcode was not loaded, and its clock wasn't synchronized well
Change: Load Warpcore microcode and apply clock compensation This change is a temporary work-around which will be embedded in the bootcode later on
Impact: 578xx Only
2. Problem: (CQ50748) MinBW not functioning as expected in certain NPAR configuration
Cause: MinBW algorithm coefficients were not calculated properly and cause the algorithm to not function well in extreme cases
Change: Re-calculate the algorithm coefficients to allow granularity of 1:100
Impact: Affects NPAR mode in which MAX bandwidth can be configured to over-subscription
3. Problem: Single Tx L2 connection enhancement feature is broken when FLR is sent on function which is under traffic
Cause: Tx firmware didn't release internal resources, which may be taken by connections that belong to FLRed functions
Change: (in FW 6.4.13) Fixed relevant firmware flow
Impact: Introduced in 1.64.01 (in FW 6.4.0)
4. Problem: Broadcast packets are received on a client which isn't configured to receive them
Cause: The firmware always passed broadcast packets to the leading client even when it wasn't configured to received them
Change: (in FW 6.4.13) Fixed relevant firmware flow
Impact: BCM57711 only, introduced in 1.64.05 (in FW 6.4.7)
5. Problem: TPA does not aggregate packet when RSS disable
Cause: Wrong initialization by firmware
Change: (in FW 6.4.13) Fixed firmware initialization
Impact: Introduced in 1.64.06 (in FW 6.4.9)
6. Problem: (iSCSI, CQ50672) Chip hangs when running iSCSI traffic on one function and toggling load/unload on the other function
Cause: Firmware initialized the CAM incorrectly, causing iSCSI out of order client to receive an unexpected packet
Change: (in FW 6.4.13) Fixed relevant firmware flow
Impact: BCM57710 only, introduced in 1.64.01 (in FW 6.0.0)
7. Problem: Compilation failed on RH5.6
Cause: Redefinition of backported function
Change: Remove the definition from bnx2x code for RH5.6
Enhancements ------------ 1. Request: Add NPAR-SD support
Change: As requested
2. Request: (CQ49959) Request to log event log in case the PHY does not come out of reset, and MDC/MDIO timeout
Change: As requested
3. Request: (CQ51065) NPAR mode: change Max BW from units of "intervals of [100Mbps]" to units of "% of physical link speed"
Change: As requested
Impact: NPAR mode only
4. Request: (FCoE) Synchronize all storms with ABTS operation before the transmission of ABTS packet, in order to avoid potential races
Change: As requested
Version 1.64.08 (Nov 08, 2010) ============================== Fixes ----- 1. Problem: 4-port MF/SF combined mode on 578xx is not functional
Cause: Improper HW initialization
Change: Common for both ports HW properly configured
Impact: 578xx only
2. Problem: Compilation failed on 2.6.36 kernels
Cause: Improper conditions in bnx2x_compat.h layer
Change: Fix condition for functions' definitions
3. Problem: (CQ50903) Driver prints some debug info when dcbx enabled
Cause: Debug info printed with error dbg level
Change: Remove the prints
4. Problem: Weighted fair queuing congestion management doesn't work on BCM57712
Cause: Firmware might send packet to wrong port in case weighted fair queuing is enabled
Change: (in FW 6.4.10) Fixed firmware flow
Impact: Introduced in 1.64.00
5. Problem: Firmware doesn't work correctly for 2 TCP connections with the same toeplitz hash result, when TPA is enabled
Cause: The firmware wrongly invalidated the aggregation for the first connection, when a packet from the second connection arrived
Change: (in FW 6.4.10) Fixed firmware flow
Impact: Introduced in 1.64.03
6. Problem: (CQ50722) When more than 16 TPA aggregations are open, aggregations might not close properly
Cause: The firmware miscalculated the TPA timer address
Cause: TCP window is closed and initiator cannot properly process incoming in-order packets
Change: (in FW 6.4.10) Fixed firmware flow
Impact: Introduced in 1.64.00
8. Problem: False bug-check when trying to set speed in NPAR mode when link is down
Cause: The FW should be configured only after the physical link is up
Change: Do not configure the FW while link is down with the new speed settings
Impact: 57712 NPAR mode only
9. Problem: (iSCSI) in NPAR mode devices have incorrect iSCSI mac address
Cause: Mac address is taken from port configuration
Change: Take the addreses from NPAR configuration
Impact: 57712 NPAR mode only
Enhancements ------------ 1. Request: Use FW 6.4.11.1
Change: As requested
Version 1.64.07 (Nov 03, 2010) ============================== Fixes ----- 1. Problem: No RSS in a multi-function mode
Cause: RSS engine ID was not initialized in Client SETUP ramrod data
Change: Set RSS engine ID in the SETUP ramrod data
Impact: Introduced in 1.64.00. 57711 and 57712 only
2. Problem: (CQ50624) Race between the netdev->open() and the last part of pci_dev->probe() that configures the interrupt mode and adds NAPIs causes kernel panic
Cause: Improper operations order: netdev_register() should be called after driver is completely configured
Change: Move all driver initializations before the netdev_register() call
Impact: Introduced in 1.60.28
Enhancements ------------ 1. Request: Unify the slow path flows for all types Client
Change: Handle iSCSI OOO slow path in a NAPI (interrupt driven instead of polling as it used to)
2. Request: Add support for 57800 HW
Change: As requested
3. Request: Add hw statistics support for 578xx
Change: As requested
4. Request: (CQ50053) Add "Dual Media Support" section to README/Man pages
Change: As requested
Version 1.64.06 (Oct 27, 2010) ============================== Fixes ----- 1. Problem: (CQ49515, CQ50024) Occasionally losing link on force 10/100 connections on BCM84823 based boads
Cause: Not waiting for GPHY to complete reset
Change: Add 50ms delay after 84823 PHY comes out of reset
Impact: BCM84823 based boards
2. Problem: (CQ50559) Build fails with RHEL6 kernel
Cause: Redefinition of backported function
Change: Remove the definition for RH kernels
Impact: Introduced in 1.64.05
3. Problem: (iSCSI OOO) When in MF mode, Hardware may get PCI error in case of iSCSI out-of-order flow
Cause: Firmware set the wrong PCI function ID
Change: Fixed firmware flow in FW 6.4.9
Impact: Introduced in 1.64.03, 57712 iSCSI OOO only
4. Problem: (CQ50483) Chip got stuck during stress test
Cause: Context was not initialized correctly by the Firmware
Change: Fix the initialization in FW 6.4.9
Impact: Introduced in 1.64.03, BCM57710/11/11E only
5. Problem: (FCoE) Trying to transmit from invalid host memory address
Cause: Receiving incorrect FCP_XFR_RDY second packet
Change: Rejecting the second FCP_XFR_RDY packet for the specific task
Impact: Introduced in 1.64.00. FCoE only
6. Problem: (FCoE) False timer REC_TOV expiration
Cause: Inappropriate advance of timer counter
Change: Fixed firmware flow in FW 6.4.9
Impact: Exists in all previous FCoE releases
7. Problem: (FCoE) Transmitting FCP_DATA frames with wrong OX_ID
Cause: Changing OX_ID once REC_TOV expiration is detected
Change: Fixed firmware flow in FW 6.4.9
Impact: Exists in all previous FCoE releases
Enhancements ------------ 1. Request: Use FW 6.4.9
Change: As requested
Version 1.64.05 (Oct 20, 2010) ============================== Fixes ----- 1. Problem: ESX Non LRO net-queues were still aggregating incoming TCP frames
Cause: net-queues not reserved for LRO were not internally marked as such (tpa not disabled)
Change: correctly disable tpa for such queues
Impact: ESX only
2. Problem: RX broken in MF SD mode
Cause: Improper hw configuration
Change: Write correct values to HW registers
Impact: Intoduced in 1.64.04
3. Problem: Link up event is not reported to the OS
Cause: Inconsistent link report state handling
Change: Change the link report state handling
4. Problem: (ESX, PR379952/PR405074) FW asserts on invalid value in a VLAN field in the start BD (xmit flow)
Cause: The first sg element might not contain all the headers
Change: Do a simple check and if this holds pull tail on the skb
Impact: ESX only. This may happen only when the VMs are using 3.0.x tools
5. Problem: Broadcast packets can be received on the wrong L2 client
Cause: Classification flow was using "unmatched unicast" flag also for broadcast packets
Change: Fixed firmware flow
Impact: 57710 only. Introduced in 1.64.03
6. Problem: When more than 16 TPA aggregations are open, aggregations are not closed properly
Cause: Firmware miscalculated the address for the TPA timers
Change: Fixed firmware flow
Impact: Introduced in 1.64.03
7. Problem: (FCoE) RRQ frame was not sent after abort operation
Cause: Corrupted ABTS ACC frame reported to the driver
Change: Firmware updates the correct R_CTL field in task context
Impact: Introduced in 1.64.00
8. Problem: (CQ49968) DMAE timeout on specific system during init
Cause: The DMAE can take up to 200ms to complete on some systems
Change: Update the DMAE timeout from 2ms to 200ms
9. Problem: Incorrect HW statistic on 578xx
Cause: Read stats from inexistent address
Change: Adopt statistics collection to avoid reading from the address
Impact: 578xx only
Enhancements ------------ 1. Request: (CQ49997) Implement Bandwidth allocation for Nic partitioning mode
Change: As requested
Impact: 57712 only
2. Request: Use FW 6.4.8
Change: As requested
3. Request: Properly calculate the LRO MSS value (needed for TCP delayed ACK handling)
Change: As requested
4. Request: Add support for BCM57810/57840 adapters
Change: As requested
Version 1.64.04 (Oct 14, 2010) ============================== Fixes ----- 1. Problem: (CQ49886) MC Assert on 57710 with more than 4 queues
Cause: ESX does not align physical memory to requested size. Thus ILT pages do not adhere to 57710 alignment requirements
Change: Allocate extra memory and manually align CDU ILT pages. Define ILT pages for all other clients to be 4K
Impact: ESX only
2. Problem: (CQ49827, CQ49844) pNic Link/Unlink test fails when the pNic eventually fails to load
Cause: During load skb allocation for L2 queues is stopped on the first failure. If this happens on the default queue before a minimal number of skbs were successfully allocated nic load fails
Change: Do not break upon first skb allocation failure. Fail only if after queues size allocation attempts not enough skbs were successfully allocated
Impact: ESX only
3. Problem: (CQ50208) ESX4.0/4.1 pNic statstics are not updated
Cause: Using a local statistics structure for ESX instead of the net_device statistics structure
Change: Use the correct statistics structure for ESX
Impact: ESX only
4. Problem: (CQ49826) Wrong skb queue mapping passed to hard_xmit
Cause: FCoE L2 queue is not disabled and is used by the stack
Change: Disable FCoE L2 queue for E1x in general and all devices in ESX
Impact: ESX only
5. Problem: ethtool -S shows all possible queues including disabled queues such as FCoE or queues with no stats such as iSCSI OOO queues
Cause: ethtool statistics call-backs iterate over all queues.
Change: Iterate only over L2 queues and FCoE queue if not disabled.
6. Problem: (ESX) packets received on a net queue may arrive after its filters are removed
Cause: filter removal completion is not syncronized with the net-queue fast-path completions
Change: Send a flush command for the net-queue after deleting the filter and before returning from the filter removal call-back
Impact: ESX only
7. Problem: (CQ50308) Compilation failure on RHEL6RC1
Cause: Definition of list_rotate_left in bnx2x_compat.h for all kernels from 2.6.34
Change: Remove the definitions for non IOV kernels
Version 1.64.03 (Oct 11, 2010) ============================== Fixes ----- 1. Problem: (ESX) MSI-X was disabled forever after NIC down/up sequence
Cause: MSI-X was explicitly disabled in the bnx2x_close() in ESX driver
Change: Cancel the explicit MSI-X disabling
Impact: ESX only
2. Problem: (CQ50033) Link remains down on the PMF despite the DCC "link up" indication
Cause: DCC event handler wasn't handling the event for the PMF
Cause: When multiple consecutive packets are sent on L2 forward connection, firmware might incorrectly manage internal transmission credit
Change: Fixed in FW 6.4.6
Impact: Introduced in 1.64.00 (FW 6.2.0)
4. Problem: LSO packets with large contiguous buffers may not be properly sent to the network
Cause: Firmware didn't calculate the number of segments to be sent to the network for LSO packet with large contiguous buffers correctly
Change: Fixed in FW 6.4.6
Impact: Introduced in 1.64.02 (FW 6.4.5)
5. Problem: (FCoE) FCP_XFR_RDY verification failure leads to the task abort
Cause: Error in a verification procedure in the second FCP_XFR_RDY packet on a single task
Change: Fixed in FW 6.4.6
Impact: Introduced in 1.64.00 (FW 6.4.0)
6. Problem: Malicious VF detection flow may cause memory corruption on TX processor
Cause: Bug in relevant firmware flow
Change: (Fixed in FW 6.4.7) Fixed firmware flow
Impact: Introduced in 1.64.00 (FW 6.4.0)
7. Problem: (FCoE)(CQ50211) InvalidCrcCount value after collecting statistics
Cause: Wrong statistics collection in firmware
Change: (Fixed in FW 6.4.7) Fixed firmware flow
Impact: Introduced in 1.64.00 (FW 6.4.0)
8. Problem: (FCoE)(CQ50267) ABTS sent with incorrect RX_ID value
Cause: Firmware reported incorrect task information when detecting the error
Change: (Fixed in FW 6.4.7) Fixed firmware flow
Impact: Introduced in 1.64.00 (FW 6.4.0)
Enhancements ------------ 1. Request: Use FW 6.4.7
Change: As requested
Version 1.64.02 (Sep 27, 2010) ============================== Fixes ----- 1. Problem: (FCoE) panic dump while opening FCoE connection
Cause: FCoE ramrods were counted on incorrect SPE pool
Change: Use L5 pool
Impact: Introduced in 1.64.00
2. Problem: Wrong statistic counter might be updated
Cause: (Fixed in FW 6.4.5) In client init the queue statistic address might be calculated wrongly
Change: Fixed the calculation in client init
Impact: Introduced in 1.64.00 (FW 6.2.1)
3. Problem: Congestion management doesn't work properly in case of a single L2 connection scenario on 57712
Cause: In case of a single connection L2 firmware didn't allow pausing transmission which is needed for the congestion management functionality
Change: (Fixed in FW 6.4.5) Firmware now considers congestion management decision to pause transmission
Impact: Introduced in 1.64.00 (FW 6.2.1)
4. Problem: The firmware returned the wrong error state for Ethernet ramrods
Cause: The code in Xstorm didn't save error state correctly
Change: (Fixed in FW 6.4.5) Fixed the relevant flow
Impact: Introduced in 1.64.00 (FW 6.2.0)
5. Problem: PF FLR could hang the chip
Cause: The firmware didn't return activity counter to CFC correctly
Change: (Fixed in FW 6.4.5) Fixed the relevant flow
Impact: Introduced in 1.64.00 (FW 6.2.0)
6. Problem: (CQ49299, PR57004) HW stuck after 8 hours of heavy LSO traffic
Cause: When driver send an LSO packet with total length longer than 64K, the firmware calculate the total SGL length in a uint16 variable which overlaps and causing an erroneous PBF command
Change: (Fixed in FW 6.4.5) Change the counter to be uint32
7. Problem: L2 traffic might be stopped in case of dcb updates COS value for some traffic types
Cause: The firmware didn't return activity counter to CFC correctly
Change: (Fixed in FW 6.4.5) Fixed the relevant flow
Impact: Exists in all previous releases that support dcb updates
Enhancements ------------ 1. Request: Port a new way L2 FW handles FCoE and FIP packets
Change: Starting from FW 6.4.4 L2 FW forwards FCoE and FIP frames to FCoE L2 client unconditionally. This means that there is no need to configure any MAC for an FCoE L2 client any more. So, all such code has been swept out
Impact: Introduced in 1.64.00 (FW 6.4.4)
2. Request: Use FW 6.4.5
Change: As requested
Version 1.64.01 (Sep 20, 2010) ============================== Fixes ----- 1. Problem: BMAC relays control packet to host and BRB is filled with unnecessary packets
Cause: BMAC is configured to relay control packets to host
Change: Configure BMAC not to relay control packets to host
2. Problem: Failed to load high functions in MF mode
Cause: bnx2x was trying to configure the HC for the default SB, which doesn't have it (during FCoE ETH ring configuration)
Change: Exclude HC configuration from FCoE ETH ring initialization
3. Problem: After "Fix 2" packets were silently dropped on the receive side in a SD MF mode
Cause: Tx OUTER VLAN was not properly configured
Change: Properly configure Tx OUTER VLAN in the function start ramrod
4. Problem: (CQ49795) Link loss on port after multiple iterations of load-unload
Cause: When link change occur, and at the same time the driver is unloaded, the NIG attention is left latched since it is used to be cleared only during link change event. This leads that following link change events are actually masked.
Change: Clear NIG latched attention during driver unload
Impact: BCM84823 based boards
5. Problem: False link up indication on boards with BCM84823 PHYs
Cause: Not waiting until PHY has come out of reset
Change: Poll on reset bit. Timeout after 1 second
Impact: BCM84823 based boards
6. Problem: iSCSI OOO didn't work over VLAN
Cause: Inconsistent Client configuration and fast path functions implementation for OOO Client in regard to HW VLAN acceleration
Change: Don't assume HW VLAN acceleration in fast path iSCSI OOO functions
Impact: iSCSI OOO only
Enhancements ------------ 1. Request: Add capability to build against SuSE source RPMs
Change: As requested
2. Request: Set drop threshold for receiver lossy COS to 90, when PFC is enabled
Change: As requested
Version 1.64.00 (Aug 31, 2010) ============================== Fixes ----- 1. Problem: (CQ47855) Link test fails under Linux using ethtool
Cause: In case a MAC test followed by link test, the NIG attention might be cleared while ISR was already triggered due to NIG attention. This led to declaring the MAC test as failed since there's actually no link in this case.
Change: In case NIG interrupt mask is cleared during interrupt handling, do not execute link status update routine.
2. Problem: (CQ48747) Dual media: fiber port does not link at 1gig speed
Cause: The link speed in the pass-through phy (84823) was set to 10G
Change: Set the pass-through speed to 1G as well when fiber is set to 1G
3. Problem: (CQ49143) Dual Media: First attempt to change from default TP to FIBRE using ethtool does not work.
Cause: When changing port type from TP to FIBRE the command failed since FIBRE doesn't support autoneg, yet the port type was changed.
Change: When ethtool command fail, do not change port type.
Impact: Dual-Media boards
4. Problem: Compilation error on kernels 2.6.34 and later
Cause: netdev_name() defined by both kernel and driver
Change: Fix compat.h for these kernels
5. Problem: 84823 PHY not showing correct Link LED's.
Cause: Incorrectly setting LED Masks
Change: Eliminated offending branch in code
Impact: Introduced in 1.60.24
6. Problem: (CQ49137) ethtool -t test fails in dual-media boards
Cause: Link wasn't tested correctly depending on the media configuration
Change: Test link according to media configuration
Impact: Dual-Media boards
7. Problem: (CQ49004) Dual Media: Switch show link on both media simultaneously.
Cause: Not disabling TX on non-active port.
Change: In case link is up in non SFP+, disable the SFP+ TX laser.
Impact: Dual-Media boards
8. Problem: On BCM8727 based boards, when link speed is changed from 1G to 10G, PCS may be halted
Cause: Restoring 10G link setting was done according to old PHY microcode
Change: Restore default 10G link setting according to new microcode
Impact: BCM8727 based boards
9. Problem: (ESX) Performance regression found by VmWare
Cause: Tx ring was configured to have a smaller length than it was in IOVP driver
Change: Configure Tx ring to have the same length as in IOVP driver
Impact: ESX only
10. Problem: (CQ48584) Intermitted link issue and unexpected behavior using boards with external PHYs
Cause: PHY lock indication was missing on second port, so there was no locking between the ports. When two ports tried to read/write from the PHY, they the instruction may collide.
Change: Set PHY lock indication of both ports
Impact: 57710/57711 on boards with external PHY. Introduced: T5.0
11. Problem: (CQ49219) Dual media: Copper link does not come up once 10gbaseT priority is set in driver property
Cause: Link indication from both Copper and Fiber
Change: Ignore link indication from Fiber in case Copper is selected
Impact: Dual-media boards Introduced: 1.60.32
12. Problem: (CQ49296) - Dual media: Copper link would not come up upon removal of fiber media when serdes priority and 1GB full is set
Cause: When Fiber link is set to 1G, its XAUI will not automaticity power down like it does in 10G. This cause the BCM84823 to detect false link from the BCM8727 even if Fiber is not connected. This ends up in not linking the copper side.
Change: When link is configured to 1G, power down the BCM8727 XAUI side, and when link comes up, power it up.
Impact: Dual Media boards.
13. Problem: (CQ49137) -Dual Media: Ethtool fail - Link_test (online) on TP every few iterations.
Cause: Link detection may take very long in case of copper, while the wait up time was limit to 10sec only.
Change: Increase link wait up time in link test to 14sec
Impact: Dual Media boards.
14. Problem: Dual Media PHY 84823 activity and front panel LED's not functioning correctly. Also Diagnostic Mode LED's not firing correctly
Cause: LED masks not set correctly
Change: Changed LED masks, and added LED mode for Diagnostics
Impact: Dual Media boards
15. Problem: CQ49197 - No link at 1Gb/2.5Gb on BCM8073 based boards
Cause: CL37 BAM was enabled on all boards while it should be configurable.
Change: Disable CL37 BAM by default.
Impact: BCM8073 based boards Introduced in 1.60.21
16. Problem: HW Statistics collection through the DMAE broken on 57712
Cause: For 57712 the DMAE command needs to include the destination function.
Change: Adjust the DMAE command to work on 57712
Impact: Introduced in 1.60.01
17. Problem: Possible inconsistency in parity recovery flow in case of bogus usage of bnx2x_trylock_hw_lock() function
Cause: Inconsistent error core returned (-EINVAL while function returns `bool')
Change: Return `false' in case of an error
Impact: 1.60.01
18. Problem: The firmware sends an assert when starting the first vf in a passthru mode
Cause: The firmware trys to send an event to the pf, but since the vf was never initialized, the firmware couldn't find which pf to use
Change: The firmware will only send an event in case the function was initialized before. Fixed in FW 6.4.4
Impact: Introduced in FW 6.2.1.1. ESX NPA only
19. Problem: (CQ48770) When working with rate-limiting in 57711/2 with jumbo frames, the rate is half of what configured
Cause: Firmware miscalculated the amount of bytes transmitted
Change: Fixed the calculation. Fixed in FW 6.4.4
Impact: Introduced in firmware version 6.0.20
20. Problem: PCI entity wasn't calculated before write event ring element in the initial cleanup and MaliciousVf handlers
Cause: Used wrong PCI entity in the handlers
Change: Calculate the PCI entity before using it. Fixed in FW 6.4.4
Impact: Introduced in FW 6.2.0
21. Problem: In FLR final cleanup flow - in some cases the IGU cleanup command was wrong
Cause: Used wrong parameters for calculation of the function id from Pf or Vf.
Change: Fixed the calculation. Fixed in FW 6.4.4
Impact: Introduced in FW 6.2.0
22. Problem: (ESX PR582737): TX switching along with LSO packet results with HW attention
Cause: LSO packet might be sent on a port which doesn't have sufficient QM credits
Change: LSO packets are sent only if credits were charged for the chosen port (physical vs. loopback). Fixed in FW 6.4.4
Impact: Introduced in first tx switching version 6.1.4
23. Problem: Possible race between dcb update and ethernet tx single connection optimizations
Cause: When Single Eth connection is present it may not allow updating the association of tx queues to COSes
Change: L2 firmware now considers DCB updates and may stop a single connection run to allow DCB configuration update Fixed in FW 6.4.4
Impact: Introduced in version 6.0.15
24. Problem: The firmware didn't support TX switching for MAC-VLAN-PAIR
Cause: The firmware didn't initialize the VFC correctly
Change: Fixed the VFC initialization. Fixed in FW 6.4.4
Impact: Introduced in FW 6.2.0
25. Problem: The error field in ramrod CQE was always sent as 0
Cause: Wrong initialization of the CQE
Change: Sending the right value. Fixed in FW 6.4.4
Impact: Introduced in FW 6.2.0.
26. Problem: The code entered the infinite loop in the Cstorm Common VfZone handler
Cause: Wrong calculation of a VF ID
Change: Fixed the VF ID calculation. Fixed in FW 6.4.4
Impact: Introduced in FW 6.2.0.
27. Problem: (CQ49649) Dual Media: No 1Gb fiber link after changing driver speed property, when cable is connected.
Cause: Link interrupt is generated from NIG attention common for both phys on dual media board. The NIG status was set for both PHYs while it should have been done for the copper attention only.
Change: Set NIG attention according to the active PHY
Impact: Dual media boards
Enhancements ------------ 1. Request: Use FW 6.2.1.1
Change: As requested
2. Request: Integrate T6.1 changes
Change: As requested
3. Request: Support HW Rx hash generation for a single queue configuration
Change: As requested
4. Request: Provide a way to know if there are pending ramrods' completions in multicast and rx_mode configuration flows
Change: Return a positive value from bnx2x_config_rx_mode() and bnx2x_config_mcast() if there are pending ramrods' completion
5. Request: Add "delete all" and "reconfigure" verbs to the VLAN_MAC object
Change: As requested
6. Request: Add "reconfigure" verb to the MCAST object
Change: As requested
Version 1.60.29 (Jul 21, 2010) ============================== Fixes ----- 1. Problem: (CQ48770) When working with rate-limiting in 57711/2 with jumbo frames, the rate is half of what configured
Cause: Firmware miscalculated the amount of bytes transmitted
Change: (In FW 6.0.30) Fixed the calculation
Impact: Introduced in 1.60.16 (FW 6.0.20)
2. Problem: FW XSTORM assert during server reboot test
Cause: There were two statistics ramrods sent with the same statistics counter. There was a race condition in the bnx2x driver that allowed this situation
Change: Protect statistics ramrod sending code and statistics counter update with the spin lock
Enhancements ------------ 1. Request: Use FW 6.0.30
Change: As requested
2. Request: Rearrange LLH memory organization
Change: Allow 16 MACs in the memory; do not set FCoE MACs in LLH
Impact: Switch-Independent mode only
Version 1.60.28 (Jul 14, 2010) ============================== Fixes ----- 1. Problem: Possible crash during load/unload of one function, if more functions are loaded.
Cause: Statistics ramrod of one function might override data of other functions
Change: (In FW 6.0.29) Fixed statistics ramrod
Impact: Introduced in 1.60.07 (FW 6.0.5)
2. Problem: Port detection feature(ethtool -p) for dual-media is not working
Cause: BCM8727 LED needs to be set via the PHY, and not the MAC
Change: Set BCM8727 LED via PHY
Impact: Dual-Media boards
3. Problem: ethtool -s ethX speed YYY does not work properly
Cause: Forcing port configuration every call to ethtool -s
Change: Do not change port configuration if not requested
Impact: Introduced in 1.60.27
4. Problem: Divide by 0 in driver code, after disabling coalescing via ethtool
Cause: Conversion from usec to interrupt per sec done without check for zero
Change: Check for zero in conversion
Impact: Introduced in 1.60.26
5. Problem: (CQ48787) ethtool -t fails in Switch-Independent mode after bringing up higher functions (4,5,6,7)
Cause: Improper mac placement in NIG block
Change: Fixed address calculation
Impact: Switch-Independent mode only
Enhancements ------------ 1. Request: Modify Dual-media look & feel such that ethtool gets and sets the configuration of the active PHY only. Active PHY is the PHY which linked up, or in case of link down, according to the port selection
Change: As requested
2. Request: Use FW 6.0.29
Change: As requested
3. Request: Don't call for pci_disable_msix() every time bnx2x_nic_unload() is called
Change: Move pci_enable_msi/msix() to pcidev->probe() callback
4. Request: (ESX) Call for netif_napi_add() before netdev->open()
Change: As requested. This change is relevant for all platforms
5. Request: Support for ethtool_cmd.speed_hi field
Change: As requested
Version 1.60.27 (Jul 07, 2010) ============================== Fixes ----- 1. Problem: (CQ48202) Under low memory condition, rx stop functioning during load/unload test
Cause: Some queue may be not fully populated, under low memory condition, which may cause FW to drop packets for this queue
Change: Change memory allocation scheme in order to avoid this situation
2. Problem: Link lost every other time when driver is brought up.
Cause: When the PHY swap parameter ('nvm cfg' option 124) is set, the PHY's swap everytime the link is brought up.
Change: Instead of storing the PHY order, we calculate it fresh everytime.
Impact: Dual-media boards.
Enhancements ------------ 1. Request: Return an error if bnx2x_set_flags() is called for unsupported flags
Change: As requested
2. Request: Don't collect statistics if requested so according to edebug-driver interface (edebug_driver_if field in shmem2 region)
Change: As requested
3. Request: Add support to bnx2x to extract Toeplitz hash out of the receive descriptor for use in skb->rxhash
Change: As requested
Impact: Kernel 2.6.35 and newer
4. Request: Add ethtool port selection for dual media
Change: As requested
Impact: Dual media boards
Version 1.60.26 (Jun 30, 2010) ============================== Fixes ----- 1. Problem: Incorrect LED behavior on dual-media platform
Cause: The LED settings are used to control GPIO in favor of over-current detection
Change: On NOC (No-OverCurrent) flavor, configure the GPIOs to reflect LED behavior rather than unnecessary over-current indication
Impact: BCM8727 based boards
2. Problem: Possible deadlock on bp->stat_sm_lock spinlock
Cause: Inappropriate locking function was used for protecting a resource accessed by workqueue and timer: used spin_lock()/spin_unlock() while should be spin_lock_bh()/spi_unlock_bh()
Change: Use an appropriate locking API: spin_lock_bh()/spin_unlokc_bh()
Impact: Introduced in 1.60.22
3. Problem: Possible crash loading cnic if iSCSI OOO has been disabled in a bnx2x
Cause: cnic was unaware of the fact that iSCSI OOO may be disabled in the bnx2x
Change: Add an appropriate bit in a cnic_eth_dev->drv_state and set it if iSCSI OOO is disabled in the bnx2x. This is done in a bnx2x_cnic_probe2()
Impact: CNIC only
4. Problem: Interrupt coalescing was disabled in the chip
Cause: Coalescing was erroneously disabled by bnx2x by default
Change: Properly configure coalescing
Impact: Introduced in 1.60.11
Enhancements ------------ 1. Request: Fit Dual media selection to the new scheme
Change: As requested
2. Request: Enable to set the GPIO which controls the external PHY reset (through nvm cfg 129)
Change: As requested
Impact: BCM8727 based boards
Version 1.60.25 (Jun 23, 2010) ============================== Fixes ----- 1. Problem: Link down when using specific DACs (Direct Attached Cables)
Cause: Some DAC's EEPROM do not respond at 400Khz speed
Change: Set 2-wire transfer rate of SFP+ module EEPROM to 100Khz
Impact: BCM8727 based boards
2. Problem: (FCoE) (CQ48021) RESET_LUN operation failed due to error detection
Cause: Detecting a protocol violation in response frame from target (target protocol violation)
Change: (In FW 6.0.28) Mask the error reporting
Impact: FCoE only
3. Problem: (FCoE) 10% performance degradation
Cause: Read queue used by firmware did not have enough credits
Change: (In FW 6.0.28) Change the read queue used by firmware
Impact: Introduced in 1.60.24 (FW 6.0.27)
4. Problem: (FCoE) (CQ48403) Target does not handle incoming FCP_DATA
Cause: Increasing SEQ_CNT is not supported by target
Change: (In FW 6.0.28) Reset the SEQ_CNT back to zero when transmitting new FCP_DATA frame
Impact: FCoE only
5. Problem: There was a "timeout waiting for queue[0]" message in a syslog when running self-test (ethtool -t ethX) on 57712
Cause: Unlike HC IGU won't generate an interrupt for status block updates that have been performed while interrupts disabled thus Tx work generated by loopback test will never be handled
Change: Call for bnx2x_tx_int() from inside the loopback test for chips with IGU (57712 and newer)
Impact: 57712 only
6. Problem: (CQ48284) up-down test on port 1 causes traffic to stop on port 0
Cause: Improper cleanup of HC and IGU blocks during function init
Change: Fix HC block cleanup, remove unnecessary IGU clean-up
Impact: Introduced in 1.60.15
Enhancements ------------ 1. Request: (CQ48374) Add a module parameter to disable iSCSI OOO
Change: As requested: added a disable_iscsi_ooo module parameter, which is present if BCM_CNIC is defined, otherwise iSCSI OOO is not enabled anyway
2. Request: (iSCSI) Add counters for iSCSI out-of-order events
Change: As requested (counters can be read from RAM through GRC) (In FW 6.0.28)
3. Request: Use FW 6.0.28
Change: As requested
Version 1.60.24 (Jun 16, 2010) ============================== Fixes ----- 1. Problem: (iSCSI) (CQ42399) Unable to run I/Os greater than 1500 bytes with initiator MTU set to 9000 and target MTU set to 1500
Cause: Timestamp option was not considered in MSS calculation
Change: (in FW 6.0.27) Fix mss calculation when timestamp option is present
2. Request: Mask protocol violations error detected by chip on HP targets
Change: Masking the specific checks (in FW 6.0.26)
3. Request: Dropping invalid packets which are received during the abort procedure
Change: As requested (in FW 6.0.27)
4. Request: Use FW 6.0.27
Change: As requested
Version 1.60.23 (Jun 10, 2010) ============================== Fixes ----- 1. Problem: Avahi daemon crashed after loading bnx2x.ko on kernels newer than 2.6.30
Cause: SAN MAC was added (dev_addr_add()) before netdev_register() call and call_netdevice_notifiers(NETDEV_CHANGEADDR, dev) has been called for a unregistered device
Change: Call dev_addr_add() after netdev_register()
Impact: Introduced in 1.60.21
2. Problem: Link status notification appeared each time when DCBX negotiation received
Cause: DCBX update handled as link update and notification printed
Change: Remove link notification from this flow
Impact: DCBX only
3. Problem: (CQ47700) Can't get Link when forcing speed on 10/100M
Cause: When link is not set to autoneg, MDIX wasn't enabled so link couldn't be established on direct cables
Change: Enable MDIX when autoneg is disabled
Impact: BCM84823 based board
4. Problem: (CQ47671) "ethtool -p ethx" has no effect on the port's LED
Cause: Specific PHY requires specific phy settings
Change: In case of copper phys, set LED registers directly in the PHY, rather than the NIG
Impact: Copper boards
5. Problem: (iSCSI OOO) Producer of OOO Rx CQ ring was updated twice than was expected
Cause: The mentioned producer was updated both in the bnx2x_cnic_get_ooo_cqe() and in the bnx2x_cnic_reuse_ooo_pkt() while is meant to be updated only in the bnx2x_cnic_reuse_ooo_pkt()
Change: Don't advance CQ ring producer in the bnx2x_cnic_get_ooo_cqe()
Impact: iSCSI OOO only
6. Problem: (iSCSI) UIO Client wasn't able to handle IPv6 traffic
Cause: UIO Client was not receiving multicast traffic because in non-promiscuous mode only one Client per function will receive multicast packets (leading RSS Client)
Change: Configure UIO Client's to accept all multicast packets
Impact: iSCSI only
7. Problem: bnx2x would not compile on kernel 2.6.34
Cause: Improper dependency in bnx2x_compat.h
Change: Switch on netdev_hw_addr_list_for_each during bnx2x_mc_addr() definition
8. Problem: (CQ47854) Driver crash during FCoE test
Cause: HW assert causes driver to halt
Change: Notify user with appropriate message without causing panic
9. Problem: Unable to bring up function 2-7 if MBA didn't configure MACs
Cause: Check for MAC for both multi-function modes
Change: Check for OV tag in Switch-Dependent mode
Impact: Introduced in 1.60.10
Enhancements ------------ 1. Request: Change PXP Write block initialization values in 57712 to help reduce latency
Change: As requested
Impact: 57712 only
Version 1.60.22 (Jun 02, 2010) ============================== Fixes ----- 1. Problem: (CQ47662) "stats updated by DMAE but no MAC active" message while up/down test
Cause: Race on update of statistics' state machine
Change: Use spinlock to protect the state machine
2. Problem: (CQ46918) Network bursts are larger than the configured connection on FLEX 10
Cause: Inaccurate bytes calculation at rate shaping mechanism
Change: Calculation was fixed in FW 6.0.25
3. Problem: (CQ47623,CQ46388,CQ47225,CQ47833) System hangs during iSCSI stress traffic
Cause: Incorrect packet trimming lead to HW internal error
Change: Fixed packet trimming on LB port in FW 6.0.25
Impact: Introduced in 1.60.10 (FW 6.0.11)
4. Problem: All BRB interrupts are masked
Cause: BRB interrupt mask is not initialized so reset value is used
Change: Initialize interrupt mask so only parser read length errors are masked
Impact: In scenarios where BRB interrupts occur, indicate appropriate error information
5. Problem: (CQ47834, CQ47795, CQ47980) On low memory condition, driver caused kernel panic in bnx2x_ilt_mem_op()
Cause: Unallocated memory access
Change: Validate non NULL pointers before access
6. Problem: (FCoE) FCoE traffic experiences a lot of drops
Enhancements ------------ 1. Request: Don't limit the pause advertisement for large MTU
Change: As requested
Impact: 57712 and above
2. Request: Forward setup ramrod should complete on event ring and not as a tx_bd_cons increment
Change: (in FW 6.0.25) as requested
3. Request: Use FW 6.0.25
Change: As requested
4. Request: Use terminate ramrod for non forwarding clients
Change: As requested
Version 1.60.21 (May 26, 2010) ============================== Fixes ----- 1. Problem: (iSCSI OOO) Kernel panicked in the skb_put() when called from bnx2x_cnic_reuse_ooo_pkt()
Cause: Wrong skb function has been used for resetting the data length in the skb: skb_put(skb, -skb_headlen(skb))
Change: Use the proper function: skb_trim(skb, 0)
Impact: iSCSI OOO only
2. Problem: 57710 - Load/unload stress test caused chip to hang
Cause: Disable of device in the middle of MSIX message caused deadlock in HC block
Change: Use PCI configuration space to avoid the deadlock
Impact: 57710 only
3. Problem: iSCSI is not functional in switch independent mode
Cause: iSCSI mac was not written into NIG memory
Change: Fix handling of MAC addreses in switch independent mode
Impact: switch independent mode only
4. Problem: Changing MTU when CNIC is loaded was causing CFC error
Cause: Setting CDU validation value for iSCSI L2 Client was done from bnx2x_register_cnic(), which is not called in change MTU flow
Change: Move setting of iSCSI L2 Client CDU validation value to bnx2x_cnic_sp_post() right before it sends iSCSI L2 Client SETUP ramrod
Impact: iSCSI only
5. Problem: 57710/57711/57711E: unable to load device on machine with 16 (and more) CPUs
Cause: Improper HC SB calculation
Change: Exclude none l2 contexts from HC SB calculation
Impact: 57710/57711/57711E only; introduced on 1.60.13
Enhancements ------------ 1. Request: (FCoE) Set SAN MAC before ifup event in order to allow the bnx2fc properly configure WWN
Change: Move the dev_addr_add() for a SAN MAC to pci_dev->probe() flow (bnx2x_init_one()) making it similar to networking MAC address configuration (it is configured in netdev at this stage as well). dev_addr_del() for a SAN MAC has been moved to bnx2x_remove_one() correspondingly
Impact: FCoE only
2. Request: Lower the bnx2x skb memory footprint on ESX
Change: Limit the OOO Rx ring to 40 BDs
Impact: ESX only
Version 1.60.20 (May 18, 2010) ============================== Fixes ----- 1. Problem: (iSCSI OOO) Call for bnx2x_cnic_reuse_ooo_pkt() was causing a kernel panic
Cause: There was a wrong fp picked in bnx2x_cnic_reuse_ooo_pkt() (fwd instead of ooo)
Change: Pick the right fp
Impact: iSCSI OOO only
2. Problem: (FCoE)(CQ47674) Chip hangs during destroy FCoE connection flow
Cause: FCoE reordering mechanism was corrupted during disable connection flow
Change: (Fixed in FW 6.0.24) Assure not to overrun relevant context for reordering operation
Impact: FCoE only
3. Problem: (FCoE)(CQ47644) Chip reporting an error instead of dropping the packet
Cause: Some errors were detected before verifying FCoE delimiters
Change: (Fixed in FW 6.0.24) Once an error detected, verify first the FCoE delimiters before reporting an error
Impact: FCoE only
4. Problem: (iSCSI OOO) Chip hangs during out-of-order traffic
Cause: Firmware internal synchronization issue between iSCSI and L2 flows
2. Request: Allow the RX rings to be initialize with a lower number of entries (at the source code level)
Change: As requested
3. Request: Use FW 6.0.24
Change: As requested
4. Request: Enable PFC statistics in MAC
Change: As requested
Version 1.60.19 (May 12, 2010) ============================== Fixes ----- 1. Problem: (iSCSI OOO): OOO packets were not indicated on the OOO Rx ring
Cause: There were missing OOO ring's CID and Client ID configuration in a TSTORM
Change: Properly configure OOO ring's CID and Client ID in the TSTORM memory
Impact: iSCSI OOO only
2. Problem: (iSCSI OOO): CNIC SB context in internal memory was zeroed after OOO and FWD rings' ramrods were completed
Cause: There was a call for bnx2x_init_sb() for CNIC SB in bnx2x_register_cnic()
Change: Remove the bnx2x_init_sb() call from bnx2x_register_cnic()
Impact: iSCSI OOO only
3. Problem: (CQ46146) "ethtool -t" fails when the speed is forced on cx4 NICs to 100/10Mb
Cause: Internal loopback test needs to conducted when speed is set to 10G force
Change: Set speed to 10G force during loopback test, and restore link speed afterwards.
Impact: ethtool -t test
4. Problem: Spelling error in module parameter
Cause: "Then" used instead of "Than"
Change: Fixed to "than"
5. Problem: (CQ47609) Link Level Pause causes link to pause after PFC has been negotiated
Cause: Wrong MAC registers configuration
Change: Fix configuration
Impact: 57712 only
6. Problem: Link change after PMF migration may halt the system
Cause: PHY attributes are provided to the initial PMF only
Change: Load PHY attributes for every new function regardless of being PMF or not.
Impact: Multi-function mode
7. Problem: (iSCSI OOO) OOO FW was not processing the incoming OOO packets
Cause: TSTORM internal RAM was not properly initialized
Change: Properly initialize OOO producer, CID and Client ID of OOO ring in a TSTORM internal memory
Impact: iSCSI OOO only
8. Problem: (iSCSI OOO) L2 FW was generating XSTORM x_eth_vlan_special_check assert when trying to post packets on a FWD ring
Cause: The running index that was posted on a VLAN field of the start BD was starting from 1, while FW was expecting it to start from 0
Change: Keep driver's packet producer and consumer running from 0 and decrement a FW packet consumer during completions handling instead
Impact: iSCSI OOO only
9. Problem: (CQ47445) The duplex mismatch does not work as expected
Cause: Duplex was set correctly in the phy, but wasn't passed to the driver. In addition, when setting 10/100 force speed, it actually advertised 10/100 with autoneg.
Change: Return the correct duplex result, and when speed is set to 10/ 100, set the speed actually for force 10/100
Impact: BCM84823 based boards
10. Problem: (CQ47383) It takes long time to re-establish link in when working against some switches in force 1G mode
Cause: PHY is unable to establish good link in this mode
Change: Enable CL37 BCM autoneg instead of working in force 1G
Impact: BCM8073 based boards
11. Problem: (CQ47436) FC setting not consistant
Cause: "ethtool -a" show flow-control autonegotiation as off when speed is not set to autonegotiate.
Change: Show the actual flow-control settings on "ethtool -a", but in case the speed setting is actually force speed, this setting will have no affect like with the BCM8727
Impact: ethtool -a
12. Problem: (CQ45632) NETDEV Watchdog message appeared and system hung
Cause: driver disables tx while carrier still on
Change: call to netif_carrier_off() after netif_tx_disable()
Enhancements ------------ 1. Request: Remove redundant LCPLL setting which is done already in the bootcode
Change: As requested
2. Request: (DCBX) Changing PFC RX configuration: In RX COS0 will always be configured to lossy and COS1 to lossless
Change: As requested
3. Request: Remove Outer Vlan configuration for Mac partitioning mode
Change: As requested
4. Request: Use FW 6.0.23
Change: As requested
5. Request: Allow driver compilation with different kernel location
Change: As requested
Version 1.60.18 (May 03, 2010) ============================== Fixes ----- 1. Problem: (CQ47451) iSCSI and FCoE broken and causes kernel panic
Cause: Wrong FW offsets used
Change: fix FW offsets defines
Impact: Introduced in 1.60.17
2. Problem: Loading driver on one port may cause link toggling on the other port
Cause: PLL was initialized for both ports instead of per chip
Change: Initialize PLL once during common init
Impact: 57712 only
3. Problem: Possible race between firmware threads when loading context to chip
Cause: Common firmware handler which loads context for slow path handler may override other handlers context load responses
Change: The common handler considers it's thread Id when waiting for the context load response
4. Problem: Loading driver on one port may cause link toggling on the other port
Cause: Firmware generates false data digest error on incoming PDU
Cause: Firmware caused connection activity-counter to drop to a negative value
Change: (Fixed in FW 6.0.22) Firmware fix
Impact: Introduced in 1.60.10 (FW 6.0.11)
Enhancements ------------ 1. Request: Remove the extra prefetch instructions from bnx2x_rx_int()
Change: As requested
2. Request: (DCBX) add ETS support
Change: As requested
3. Request: (DCBX) add DCB statistics information; add support for 4-bytes long remote chassis id
Change: As requested
4. Request: Set NIC_MODE when cnic driver does not exist in the system
Change: As requested
Impact: Revert of change introduced in 1.60.11
5. Request: Remove Modules.supported file
Change: As requested
6. Request: Use FW 6.0.22
Change: As requested
Version 1.60.17 (Apr 27, 2010) ============================== Fixes ----- 1. Problem: Kernel warning message from pci_enable_msix() in case of parity error
Cause: Improper handling of MSI-X enable/disable flow in parity error case
Change: Disable interrupts, disconnect from IRQs and disable MSI-X in OS level in bnx2x_nic_unload() both in parity error case
2. Problem: FIP packets won't arrive to the FCoE L2 ring
Cause: Current FW still doesn't support the FIP packets filtering according to the ETH type
Change: Revert the previous enhancement that removed setting the "FIP MAC" to the FCoE L2 Client
Impact: Introduced in 1.60.16
3. Problem: PCI speed is always reported as 5G (Gen2) on 57712
Cause: Wrong decoding of the PCI speed
Change: Fixed the speed decoding
Impact: Only 57712
4. Problem: There was a possibility that packets might be transmitted on the queue of the FCoE L2 Client before its SETUP ramrod is completed
Cause: bp->state was set to OPEN after FUNCTION_START ramrod (before SETUP ramrod(s) are sent)
Change: Set bp->state=OPEN only after all Clients' SETUP ramrods complete
Change: bnx2x didn't send an ACK to IGU after establishing OOO and FWD clients
Impact: CNIC only
2. Problem: (CQ47020) Kernel panic during cnic load
Cause: Initializing of iSCSI L2 context validation values was done from bnx2x_cnic_probe() function, which is called both for devices that are down and their memories are still not allocated (including contexts)
Change: Initialize iSCSI L2 context from bnx2x_register_cnic() which may be called only for interfaces that are up
Impact: CNIC only
3. Problem: CFC error when FCoE INIT ramrod is sent
Cause: FCoE Init CID was not initialized
Change: Initialize fcoe_init_cid to the correct value in bnx2x_cnic_probe()
Impact: FCoE only
4. Problem: (CQ47100) When the force KR enabler is set correctly, traffic does not work on 8073 based boards
Cause: Polarity swap was not set correctly in case link is set to 1G
Change: Initialize polarity swap correctly when enabled.
Impact: BCM8073 based boards only
5. Problem: DCB change during FLR might cause chip hang
Cause: Firmware skipped DCB update when encountered a PCI error
Change: (Fixed in FW 6.0.19) Firmware flow changed to first update DCB version and only then to proceed to handle PCI error
Impact: Introduced in 1.60.11 (FW 6.0.15)
6. Problem: (FCoE) Chip hangs after trying to access inappropriate host memory address
Cause: Firmware instructed corrupted SGEs in PBF command due to corrupted Xstorm context
Change: (Fixed in FW 6.0.19) Save entire Xstorm context during disable connection procedure
Impact: Exists in all previous FCoE releases
7. Problem: (FCoE) (CQ47022) Disabling/Enabling the adapter from Host side without IO, causes device manager to hang
Cause: Firmware did not update task properly in host memory after detecting illegal CONF request
Change: (Fixed in FW 6.0.19) Save task context only after all verification has been completed
Impact: Introduced in 1.60.01
8. Problem: (iSCSI) Connection close does not complete
Cause: Final ACK from target is discarded by firmware
Change: (Fixed in FW 6.0.19) Firmware fix
Impact: Introduced in 1.60.10 (FW 6.0.11)
9. Problem: (CQ47034) MIN/MAX is not accurate for small packets
Cause: The firmware didn't count inter-packet gap and preamble in bandwidth allocation.
Change: (Fixed in FW 6.0.19) Fixed L2 calculation
Impact: Introduced in 1.45.xx. Doesn't include fix for iSCSI and FCoE
10. Problem: (CQ46501) DCBX IOTCL config_dcbx_params.admin_dcbx_version shows incorrect value
Cause: Variable initialized to incorrect value of 2
Change: Fixed to appropriate 0 (CEE)
11. Problem: Link down when upgrading BCM84823 phy firmware to 2.24/2.25
Cause: Changes in the firmware initialization required setting different values
Change: Set the require phy register to achieve link and led in all speeds
Impact: BCM84823 based boards
Enhancements ------------ 1. Request: Add support for iSCSI OOO flow in L2 driver
Change: As requested
Impact: iSCSI only
2. Request: Don't call for NAPI related functions from non-NAPI context
Change: Handle cleanup ramrods in an interrupt driven mode and not in a polling mode as it was
3. Request: (FCoE) Reset the entire KCQE before start initializing it
Change: As requested
4. Request: (FCoE) Change firmware assert to error notification to driver when receiving MP frame with unknown R_CTL.function mode
Change: As requested
5. Request: Use FW 6.0.19
Change: As requested
6. Request: Don't disable TPA on XEN enabled kernels
Change: As requested
Version 1.60.14 (Apr 08, 2010) ==============================
Fixes ----- 1. Problem: Driver failed to pass TCP traffic in non-TPA mode on 57712
Cause: SGE buffer size was not configured to zero in non-TPA mode
Change: Properly set TPA-related section in Client Init ramrod data
Impact: 57712 only
2. Problem: Link LED for 10M/100M/1000M is not functional on BCM84823 based boards
Cause: LED functionality was controlled by 10G core all the time
Change: When link speed is up in 10M/100M/1000M, set led control to 1G core.
Impact: BCM84823/BCM8481 based boards
3. Problem: Link doesn't come up when changed from 1G to 10G with BCM84823 based boards.
Cause: Phy wasn't initialized in this case so some parameters were not cleared
Change: Reset phy when any parameter is changed
Impact: Seen on BCM84823 based board, but may relate to others
4. Problem: (CQ46902) Unable to load driver on some systems
Cause: Old BIOS behaviour is not compliant with newest PCIE spec according to number of tags supported by the system
Change: Driver validates the capability
Impact: 57712 only
Version 1.60.13 (Apr 4, 2010) ============================== **** This release doesn't support non-TPA mode on 57712 devices ****
Cause: Variable initialized to incorrect value of 2
Change: Fixed to appropriate 0 (CEE)
2. Problem: FC behavior is changed so that setting FC to auto when speed is force has no influence of to flow-control
Cause: Although this configuration is not so logic, many boards have their configuration build this way so need to restore this behavior
Change: Change back to old behavior
Impact: Optic devices. Introduced in 1.60.11
3. Problem: When RX-polarity swap is set, traffic in 1G link doesn't pass.
Cause: RX-polarity was set on the PMA/PMD side instead of the XGXS side
Change: Set RX polarity on the XGXS side of the 8073
Impact: KR (BCM8073)
4. Problem: Autoneg flow-control is not seen using "ethtool -a"
Cause: Duplicating the link parameters configuration for dual-media platform
Change: Return the correct FC status
Impact: Introduced in 1.60.11
5. Problem: Self-test was reporting errors in an IGU block when driver was configured to use INT#x
Cause: Driver was reading interrupt status register when IGU was still disabled for the current PF
Change: Connect to IRQs after HW initializing
6. Problem: Self-test was reporting errors in an IGU block when driver was configured to use INT#x
Cause: Driver was reading interrupt status register when IGU was still not configured to Single ISR mode
Change: Set IGU_PF_CONF_SINGLE_ISR_EN bit together with IGU_PF_CONF_FUNC_EN when driver is configured to Single ISR mode (MSI or INT#x) and do not turn it off unless the driver is configured to use MSI-X interrupt mode
Impact: 57712 only
7. Problem: When link speed is set to 1G, link comes up in 10G when connected to device which advertise 10G.
Cause: BCM84823 always advertises 10G speed.
Change: When speed capability doesn't include 10G, or force speed is not set to 10G, disable 10G advertisement
Impact: BCM84823, BCM8481
8. Problem: (CQ46844, CQ46842) Driver did not work properly on machines with large number of CPUs.
Cause: Driver was managing more resources then available in FW
Change: Taking into account max available L2 contexts
Impact: 57712 only
8. Problem: Potential link issue with force 1G on 8073
Cause: Setting one of the registers in the force 1G sequence incorrectly
Change: Fix 1G force sequence
Impact: 57712 + KR only
9. Problem: Terminate ramrod called host coalescing on Tx segment
Cause: Wrong logic while sending host coalescing on Tx
Change: (Fixed in FW 6.0.17) The ramrod no longer send host coalescing
Impact: Introduced in 1.60.6 (FW 6.0.3)
10. Problem: Firmware asserted when TPA is disable
Cause: Wrong logic in the assert Conditions
Change: (Fixed in FW 6.0.17) The assert may occur only when TPA is enabled
Impact: Introduced in 1.60.12 (FW 6.0.15)
11. Problem: VF: system crashed when VF reads client init data
Cause: Reading client init from VF memory and not from PF memory
Change: (Fixed in FW 6.0.17) VF read the client init from PF memory
Impact: Introduced in 1.60.12 (FW 6.0.15)
12. Problem: Pause on exhausted ring broken
Cause: Internal pause data structure was initialized improperly
Change: (Fixed in FW 6.0.17) Fix internal ram offset calculation
Impact: Introduced in 1.60.12 (FW 6.0.15)
13. Problem: (FCoE) Timer expiration doesn't read DCB info
Cause: DCB update is done only for transmission flows
Change: (Fixed in FW 6.0.17) Read DCB info for timer expiration
Impact: Introduced in 1.60.12 (FW 6.0.15)
14. Problem: Return credit in termination handler without executing DCB update
Cause: Firmware bug
Change: (Fixed in FW 6.0.18) Update DCB in the beginning of the terminate handler
Impact: Introduced in 1.60.10 (FW 6.0.11)
Enhancements ------------ 1. Request: When link speed is set to force on copper devices, set link to autoneg with specific link speed advertisement since force speed is not copper compliant
Change: As requested
Impact: BCM84823/BCM8481 based devices
2. Request: Add PFC/DCBX support for E2
Change: As requested
3. Request: Make driver to be compiled, by default, with FCoE support
Change: As requested. FCoE support comes by default with CNIC support
4. Request: Don't allocate SGEs when TPA is not enabled for a specific ring
Change: As requested
5. Request: Use FW 6.0.18
Change: As requested
Version 1.60.12 (Mar 23, 2010) ============================== 1. Problem: Flow control is not set on optic devices
Cause: When flow-control was set to force on optic devices, configuration was not permeate to the MACs
Change: Set the FC configuration on optic devices according to user settings
Impact: Optic devices
Version 1.60.11 (Mar 22, 2010) ============================== Fixes ----- 1. Problem: Driver didn't work on big endian setups
Cause: There were endianness bugs both in HSI and in driver
Change: Properly handle endianness in EQ related code
Impact: Introduced in 1.60.10
2. Problem: Potential link issue with BCM8727
Cause: In BCM8727, the firmware in second port must be loaded before the first port.
Change: Download the second port to 8727 first during initialization
Impact: 57712 only and SFP+ only
3. Problem: Driver didn't work with KVM SR-IOV
Cause: Final client delete (CFCdelete ) was not communicated to the SR-IOV management code.
Change: Passing the delete completion notifications to the SR-IOV management.
Impact: Introduced in 1.60.10
4. Problem: (CQ46455) Load-unload test failed in Multi-Function mode
Cause: Improper initialization and cleanup of IGU block
Enhancements ------------ 1. Request: (CQ45126) Change NIC_MODE to impove latency if no offloaded connection is present
Change: As requested
2. Request: Support dual-media configuration with swapped phy configuration
Change: As requested.
Impact: Dual media board
3. Request: Split speed and duplex parameters into two media
Change: As requested
4. Request: Support powering down the BCM84823 copper core when phy configuration is set to second_port
Change: As requested
Impact: BCM84823 dual-media
5. Request: Add support for 4-port mode device
Change: As requested
Impact: 57712
6. Request: Add support for force 1G for KR triggered by new nvm cfg option 127: "Force KR enabler"
Change: As requested
Impact: KR(BCM8073)
7. Request: Add support for Client Setup ramrod
Change: Use FW 6.0.15
8. Request: Cleanup VLAN related code
Change: As requested
9. Request: Add TCP Out-Of-Order support in iSCSI Firmware
Change: As requested (in FW 6.0.14)
10.Request: Increase L2 clients from 26 clients to 28 in order to support iSCSI Out of Order in multi function mode
Change: As requested (in FW 6.0.15)
11.Request: Added client_init_ramrod_data struct, in order to decouple between driver and firmware client-related structures
Change: As requested (in FW 6.0.15)
12.Request: Support changing COS and vlan priority updates according to DCB in L2 TX firmware
Change: As requested (in FW 6.0.15)
13.Request: (FCoE) Support stop traffic\start traffic flow control ramrods
Change: As requested (in FW 6.0.15)
Version 1.60.10 (Mar 8, 2010) ============================== **** This release doesn't support big-endian architecture **** Fixes ----- 1. Problem: CFC HW attention was popping up on 57710 and 57711 when interface was closed
Cause: bnx2x_pf_disable() was called for all types of chips
Change: Call bnx2x_pf_disable() for 57712 only
Impact: Introduced in 1.60.08; applies for 57711 and 57710 only
2. Problem: (FCoE) PFC didn't function properly
Cause: Bad values of LLFC watermarks
Change: Set LLFC watermarks to proper values
Impact: 57712 PFC only
3. Problem: Limiting the number of queues with the num_queues module parameter to a number smaller then the number of CPUs renders the driver inoperable.
Cause: The RX RSS indirection table is initialized with bad values.
Change: Fixed the indirection table initialization
Impact: Introduced in 1.60.01
4. Problem: VF load for VFs with id greater then 3 crashes the host driver.
Cause: The host driver failed to allocate the HW-context for such VFs.
Change: Fixed the host driver VF HW-context allocation for VFs.
Impact: 57712 IOV only
5. Problem: (CQ45880, CQ46008) On 57712 incorrect statistic information is displayed for ethtool/ifconfig
Cause: Reading the information from incorrect memory region
Change: Fixed region and registers addresses
Impact: 57712 only
6. Problem: (CQ46197) Compilation error on system with undefined value of CONFIG_PCI_MSI
Cause: Code was not compiled due to undefined value
Change: Removed dependency on this value
Impact: Introduced in 1.60.06
7. Problem: BCM84823 Copper link doesn't come up
Cause: Starting from firmware 2.20, BCM84823 enforces the XGXS to link first with the BCM84823 before it triggers LASI.
Change: Set the appropriate flag for the 84823 which enforce XGXS initialization before external link is up
Impact: BCM84823(copper)
8. Problem: CQ45718: Driver crash after driver load
Cause: Driver was sending a relatively new command to a bootcode which doesn't support it. This command in unfamiliar with this bootcode, and should only be sent to bootcode which support it.
Change: Send this command only to bootcode which support it.
Impact: SFP+ only
9. Problem: Some error statistics weren't counted correctly
Cause: The statistics address was miscalculated
Change: Fixed address calculation (in FW 6.0.11)
Impact: Introduced in 1.60.06 (FW 6.0.3)
10. Problem: iSCSI firmware broken
Cause: TCP layer interface was changed
Change: Applied new TCP interface to iSCSI firmware (in FW 6.0.11)
Impact: Introduced in 1.60.07 (FW 6.0.4)
11. Problem: Possible permanent locking of Tx queue
Cause: There was a memory barrier missing after tx_cons update
Change: Added a missing barrier
12. Problem: Possible "queue is alive while ring is full" situation
Cause: bnx2x_start_xmit() may have run and locked the queue while bnx2x_tx_int() has decided that it may unlock it
Change: Take tx_lock while deciding to unlock the queue
Enhancements ------------ 1. Request: Add clarification for int_mode driver parameter
2. Request: Support MAC partitioning mode (Multi function based on MAC classification)
Change: As requested
Impact: 57712 only (when set to MAC partitioning mode)
3. Request: Use FW 6.0.12
Change: As requested
4. Request: Use the upstream printouts and mcast iterators semantics
Change: As requested
Version 1.60.09 (Feb 22, 2010) ============================== Fixes ----- 1. Problem: (CQ46006) NIG test A36 failed if the driver was loaded before
Cause: Configuration of PGLUE_B register with wrong value, while reset value is good
Change: Remove erroneous configuration
Impact: 57712 only
2. Problem: (CQ45648) driver asserts while trying to unload/load iSCSI/FCoE
Cause: internal firmware resources were not cleaned properly by driver upon unload
Change: (Fixed in FW 6.0.8) offset was generated for slow path sync line index
Impact: 57712 only
3. Problem: (FCoE) Terminate handler will not complete
Cause: Race between timer expiration and terminate handler invocation
Change: (Fixed in FW 6.0.8)
Impact: 57712 only
4. Problem: (CQ46052) Compilation warning on older kernels ("warning: assignment discards qualifiers from pointer target type")
Cause: The compilation condition regarding the kernel version was mistakenly changed
Change: Change the kernel version condition
Impact: Introduced in 1.60.08
5. Problem: (FCoE) (CQ45915): Second CNIC interrupt was never arriving when working with port 1
Cause: Wrong SB ID was used in CNIC functions sending ACK to IGU
Change: Added IGU_SB_ID to CNIC interface, fixed CNIC functions sending ACK to IGU to use the new index
Impact: Has been introduced in T6.0
Enhancements ------------ 1. Request: For 57712 add support for switch-independent mode
Change: As requested
2. Request: Add per-path licensing support
Change: (In FW 6.0.9) Support BCM57712 address scheme
Impact: 57712 only
3. Request: Minimize DMA transaction to improve PCIE latency
Change: (In FW 6.0.9) Packet placement is done in single DMA command instead of two
4. Request: Constant pause avoidance
Change: (In FW 6.0.9) Timeout for pause sending was added. Un-pause message will be sent upon timeout expiration. (Timeout default is 1 minute, can be set up to 5 minutes by the driver)
Impact: 57711/57711E/57712 only
5. Request: Use FW 6.0.9
Change: As requested
Impact: iSCSI is not functional in this version
Version 1.60.08 (Feb 18, 2010) ============================== **** iSCSI is not functional in this version **** Fixes ----- 1. Problem: (CQ45963,CQ45962) DCBX IOCTL shows unusual values for admin_configuration_ets_pg, admin_pfc_bitmap
Cause: Admin section was initialized with incorrect values
3. Problem: (CQ45763, CQ45799) On 57712 a request can be sent on a disabled function
Cause: Request sent from timers block that scans function 6/7 when function 2/3 scan off is set
Change: Workaround in the driver that assures that if the timers starts scanning for function 6/7 nothing fatal will occur
Impact: 57712 only
4. Problem: (CQ45973) On 57712 bringing up interface caused DMAE timeout
Cause: Initialization of function not performed properly
Change: Enable function in PGLUE_B module before accessing DMAE
Impact: 57712 only
5. Problem: In KR board type, when loading the first port first, it causes the other port's link not to come up.
Cause: BCM8073 requires that the second port's firmware will be loaded first.
Change: Always load the first phy port's firmware
Impact: 57712 only and KR only
Enhancements ------------ 1. Request: Replace references to cnic_drv.h with cnic_if.h
Change: As requested
2. Request: Add DRV_CTL_{START,STOP}_L2_CMD capabilities to drv_ctl()
Change: As requested
3. Request: Update cnic driver with SP_SB information
Change: As requested
4. Request: Add handling for iscsi mac addresses during registrer_cnic() unregister_cnic() and chip_cleanup()
Change: As requested
Version 1.60.07 (Feb 11, 2010) ============================== **** iSCSI is not functional in this version **** Fixes ----- 1. Problem: (CQ45674) Warning message was displayed when modprobe bnx2x "bnx2x_get_hwinfo ..."
Cause: Inappropriate printing level for the message used
Change: Set correct level
2. Problem: BCM8073 wasn't initialized during common init
Cause: In 57712, the second port is actually port0 of the second path, and it wasn't treated like that.
Change: Initialize port0 of both paths of BCM8073 during common init
Impact: 57712 only and KR only
3. Problem: PCIE-X link speed is not displayed correctly for 57712
Cause: Misinterpretation of link speed encoded value
Change: Fixed for 57712
Impact: 57712 only
4. Problem: Performance drop on high-PPS scenarios with new HC code
Cause: New HC flow was overloading a HW buffer and caused back pressure on on-chip processors
Change: (In FW 6.0.6) Remove some of the HW buffer uses
Impact: introduced in 1.60.01 (FW 5.3.19)
5. Problem: (CQ45499) HW attention at BCM57710 stress test
Cause: New HC flow could cause HW bug by using illegal timers command
Change: (In FW 6.0.6) Remove the use of timers command, instead use aggregated interrupts
Impact: introduced in 1.60.01 (FW 5.3.19) BCM57710/BCM57711 only
6. Problem: Change MTU causes L4 traffic to stop
Cause: Status Block of cnic driver was not updated during nic_load
Change: Add cnic SB update
Impact: Introduced in 1.60.01
Enhancements ------------ 1. Request: Use FW 6.0.7
Change: As requested
Impact: iSCSI is not functional in this version
Version 1.60.06 (Feb 4, 2010) ============================== **** This version requires bootcode 6.0.6 or above for BCM57712 ****
Fixes ----- 1. Problem: FCoE wasn't receiving mcast packets, including FIP packets sent to ALL_ENODE_MACS address
Cause: There was DROP_ALL_MCAST flag set to FCoE L2 client
Change: Set ACCEPT_MCAST flag to FCoE L2 client that will make it receive only matched mcast packets
2. Problem: Path1 shared memory data run over Path0 configuration
Cause: The register that marks the beginning of the shared memory is global rather than split per path
Change: Use different registers to mark the beginning of the shared memory per path.
Impact: 57712 only
3. Problem: bnx2x stopped receiving on the VLAN after MTU change
Cause: VLAN removal flag was not configured after reloading FW during change MTU flow
Change: Configure VLAN removal flag if needed after MTU change
4. Problem: drivers enter infinite loop during crash dump
Cause: lack of parentheses in loop expression
Change: add parentheses
5. Problem: (iSCSI)(CQ45150) OIS Assert occurred after attempting to login to iSCSI target
Cause: Firmware bug
Change: Fixed in FW 6.0.2
6. Problem: (FCoE)(CQ44937) Data corruption after forcing FC-CRC error
Cause: Hardware bug when detecting CRC error on FCoE data placement
Change: (Fixed in FW 6.0.3) Firmware workaround - Send 64 DMA dummy write commands in order to prevent the false error from appearing
7. Problem: 57712 4-port mode doesn't link up
Cause: XGXS wasn't actually configured in this mode since the current MD_DEVAD used didn't work.
Change: Use different MD_DEVAD when working with the E2 XGXS
Impact: 57712 only
8. Problem: 57712 4-port D2 nic test(internal loopback test) fail
Cause: Loopback was set as 10G instead of 1G loopback
Change: When speed selection is 1G, set 1G loopback, otherwise set 10G loopback.
Impact: 57712 only
Enhancements ----------- 1. Request: Add support for KVM SR-IOV (BCM57712 and onwards)
Change: As requested
2. Request: Add support for VF devices
Change: As requested
3. Request: Update README.TXT and manpages with GRO dependency on 8021q module
Change: As requested
4. Request: Use FW 6.0.3
Change: As requested
Version 1.60.04 (Jan 26, 2010) ==============================
Fixes ----- 1. Problem: (CQ43831) Driver error reports while loading/unloading under DCC traffic
Cause: A race condition between disabling the incoming traffic when unloading and DCC enabling the link
Change: Changed DCC enable/disable commands to use a different register setting that will not interfere with normal unload sequence
2. Problem: Driver load under DCC traffic might fail
Cause: Lack of lock between driver load command and DCC ack command
Change: Add mutex to protect the FW mailbox
3. Problem: ifconfig up reported error while using bootcode 6.0.1
Cause: Lack of lock between DCBX init command and response handling
Change: Add mutex to protect the FW mailbox
4. Problem: FW asserts while unloading/loading under DCC enable/disable commands
Cause: DCC disable command changed the driver internal state and might overrun state changes which are initiated by the load/unload sequence. This caused the driver to be out of sync with the FW
Change: DCC disable/enable command uses different flag and not the driver state
5. Problem: Error message is printed when failing to obtain MSI-X vectors
Cause: When trying to work in multi-mode and not getting enough MSI-X vectors, the driver printed an error message indicating that it will use a single queue
Change: Since this is a valid condition, the print is allowed under specific messages level only
6. Problem: port 1 of 57712 can't initialize correctly
Cause: driver accessed incorrect shmem addresses
Change: fixed
Impact: 57712/57712E only
7. Problem: 57712 link is not up
Cause: There's difference in AER strapping between 57711 and 57712
Change: Set the XGXS AER to the appropriate value according to the new XGXS model
Impact: 57712 only
Version 1.60.03 (Jan 20, 2010) ==============================
Fixes ----- 1. Problem: Unresolved symbols during compilation on 32bit platforms
Cause: Improper initialization of variable with FP symbol
Change: Using integer constant instead
Impact: Introduced in 1.60.01
2. Problem: MF dead in the water for 57711
Cause: Improper initialization of the FW caused it to hang
Change: Fixed initialization
Impact: Introduced in 1.60.01
3. Problem: HC not enabled for port 1
Cause: Improper initialization the HC in the FW
Change: Fixed initialization
Impact: Introduced in 1.60.01
4. Problem: (iSCSI) Unexpected chip behavior when padding is splitted into 2 or 3 parts
Cause: Firmware bug when aligning split padding
Change: Firmware was fixed
Impact: Problem exists in all previous releases
5. Problem: (iSCSI) False data digest error when data digest is splitted into 3 parts
Change: Remove access to EMAC register in case of emulation
2. Problem: In dual-media, only the SFP+ module on the first phy is checked
Cause: Insufficient support in SFP+ module checking
Change: Modify SFP+ module API verification to include parameter indicating the exact phy.
Impact: Whenever driver send command to the bootcode, it will now also send parameter. Bootcode will treat this parameter only when it is relevant
3. Problem: (FCoE) Chip hangs while running normal rd/wr operations
Cause: RX Doorbell was not handled properly
Change: (Fixed in FW 5.3.18) Handling the case where receiving false RX doorbell
4. Problem: (FCoE) (CQ44936, CQ44937) Data corruption during read/write/compare test
Cause: Error was not detected by FW since it was short FCP_RSP packets
Change: (Fixed in FW 5.3.20) Checking if received the amount of data when receiving this format of FCP_RSP
5. Problem: (FCoE) (CQ44936, CQ44937) Data corruption during read/write/compare test
Cause: When packet with invalid CRC detected, task context isn't reverted to previous valid state
Change: (Fixed in FW 5.3.20) on detection of packet with invalid CRC, task cached context isn't write back to memory
6. Problem: (iSCSI) Chip hangs when running iSCSI read traffic
Cause: Miscalculation of HW commands when SGEs are not 64-bytes aligned
Change: (Fixed in FW 5.3.20) Fixing FW calculation of SGE alignment and fields in HW command
7. Problem: (FCoE) Upper layer didn't know which MAC to use during DCBX negotiation.
Cause: Proper MAC (SAN) was not set in the netdev.
Change: Call dev_addr_add() with the proper MAC and SAN type.
8. Problem: (FCoE) FIP packets were not ruled by the PFC FC.
Cause: FIP packets were arriving on a regular L2 client.
Change: Set a different MAC to the FCoE L2 client.
Enhancement ----------- 1. Request: Changed the doorbell size (the stride between consecutive doorbells' addresses) from 4K to 128
Change: As requested
2. Request: Add support for dual-media board type
Change: Redesign the CLC to be able to handle multi-phy boards. Rename clc/CLC to elink/ELINK. Driver is required to probe the phys on board before initializing the link. Specific phy access will be done using "phy" structure. Common access will go over all phys on board and execute the command on them.
Impact: From now on, high level driver will not be familiar with the phys on-board. For every phy access, it is required to use the elink API, or add new one.
3. Request: Having the ability to pass data from the Tstorm to the driver over the SGL in fast_path_cqe (required for iSCSI Out-Of-Order)
Change: As requested (in FW 5.3.20)
4. Request: Use FW 5.3.20
Change: As requested
5. Request: Add DCBX support for 57711
Change: As requested
6. Request: Remove #ifdef CONFIG_PCI_MSI sections from code
Change: Removed #ifdef CONFIG_PCI_MSI sections. Left the code that was compiled when this (CONFIG_PCI_MSI) macro has been defined.
Version 1.53.14 (Dec 7, 2009) ==============================
Enhancement ----------- 1. Request: (CQ41760) Use more generic log message in case of fan failure
Change: As requested
2. Request: (CQ43089) Add VPD-R V0 entry to displayed firmware revision in ETHTOOL
Change: As requested
3. Request: Use FW 5.3.17
Change: As requested
4. Request: Enable parity errors recognition and recovery.
Change: First implementation of parity error recovery flow. Currently only "process kill" is supported. Parity errors are currently disabled for E1 until the proper changes are done to init tool.
Version 1.53.13 (Nov 17, 2009) ==============================
Fixes ----- 1. Problem: Improper initialization of MF/SF causes driver to stall
Cause: Using uninitialized values of fpid
Change: Using fpid moved to later stages after its initialization
Impact: None
Version 1.53.12 (Nov 16, 2009) ==============================
Fixes ----- 1. Problem: CQ41232: Management gets incorrect AN and FC bit values.
Cause: FC wasn't updated correctly during link up event
Change: Extract all status_link information correctly
Impact: None
2. Problem: CQ36401: Excessive link down messages when driver is unloaded
Cause: Link event is reported for every link event, even when link is not changed
Change: Do not report link change unless there's actually link link change
Impact: None
3. Problem: BCM8481 doesn't negotiate FC capabilities
Cause: FC capabilities weren't advertised during phy initialization
Change: Set BCM8481 FC capabilities during init stage
Impact: None
4. Problem: (FCoE) Completions are not arrived on open tasks
Cause: Connection does not register to QM since SQ producer/consumer
Change: Fixed in FW 5.3.14: Set BCM8481 FC capabilities during init stage
Impact: None
Enhancement ----------- 1. Request: Support bootcode on 57712
Change: As requested
Impact: 577712 Only
2. Request: Allocate available MSI-X vectors in normal mode
Change: As requested
Impact: None
3. Request: Use multi cpu rx when using msix in kernels without new napi
Change: As requested
Impact: None
4. Request: support correct number of iSCSI and FCoE sessions in the HW initializations
Change: As requested
Impact: None
5. Request: support any number of L2 queues in the HW initializations
Change: As requested
Impact: None
6. Request: Hanlde both Tx and Rx in NAPI
Change: As requested
Impact: None
7. Request: Support 4-port mode for 57712
Change: As requested
Impact: None
8. Request: Use FW 5.3.14
Change: As requested
Impact: None
Version 1.53.11 (Nov 11, 2009) ============================== Fixes ----- 1. Problem: When iptable_nat module is installed on RH4, traffic halts
Cause: iptable_nat on RH4 requests for GSO without asking for csum offload
Change: When configuring the HW/FW to GSO, always configure csum offload as well
2. Problem: (FCoE) Chip hanged during data placement
Cause: Thread started placing data before verifying the task type
Change: Fixed in FW 5.3.13: verify task type is match to read in FCP_DATA before placement
Impact: None
3. Problem: (CQ44328) (FCoE) Chip hanged after error was detected
Cause: Thread was waiting for CRC result instead of releasing the packet
Change: Fixed in FW 5.3.13: Release the packet if an error occurred during data placement
Impact: None
Enhancement ----------- 1. Request: Use FW 5.3.13
Change: As requested
Impact: None
Version 1.53.10 (Nov 08, 2009) ==============================
Enhancement ----------- 1. Request: Use FW 5.3.12
Change: As requested
Impact: None
Version 1.53.9 (Oct 27, 2009) ==============================
Fixes ----- 1. Problem: ethtool -t ethX FAILED
Cause: test_registers() accessed registers without mask
Change: Added mask for write access
Impact: None
Version 1.53.8 (Oct 26, 2009) ==============================
Enhancement ----------- 1. Request: Use FW 5.3.10
Change: As requested
Impact: None
Version 1.53.xx (Oct xx, 2009) ==============================
Enhancement ----------- 1. Request: Improve times for ifconfig up/down (slow 57712 chip revision)
Change: As requested
Impact: None
Version 1.53.xx (Oct xx, 2009) ==============================
Enhancement ----------- 1. Request: Add support for EMAC loopback for FPGA
Change: As requested
Impact: None
Version 1.53.7 (Oct 22, 2009) ==============================
Enhancement ----------- 1. Request: Use FW 5.3.9
Change: As requested
Impact: None
2. Request: Remove compilation flag for BCM57712/BCM57712E/BCM57713/BCM57713E
Change: As requested
Impact: None
Version 1.53.6 (Oct 21, 2009) ==============================
Enhancement ----------- 1. Request: 57712 multifunction support
Change: As requested
Impact: None
Version 1.53.5 (Oct XX, 2009) ==============================
Fixes ----- 1. Problem: Failed to build bnx2x in chroot build environment
Cause: The Makefile attempted to run with -j flag to utilize all CPU in the system and in chroot environment it resulted with "-j 0"
Change: The Makefile should not force the -j option. Removed this feature
Impact: Without explicitly providing the -j flag when compiling the driver, the compilation will consume more time
Version 1.53.4 (Oct 11, 2009) ==============================
Fixes ----- 1. Problem: Priority Flow Control on BCM57711 showed low performance
Cause: Transmitted Xon PFC packet was malformed. PriorityEnableVector field in PFC packet was set to zero instead of the relevant priorities. This caused to remote peer to wait longer until timers expired to Xon again
Change: Fixed in FW 5.3.8: set properly PriorityEnableVector in Xon PFC packet
Impact: None
2. Problem: (CQ43517) SLES11u0 iSCSI: SUT hangs when unexpected FIN packet was received under traffic
Cause: FW erroneously increased activity counter
Change: Fixed in FW 5.3.8: condition for activity counter increment fixed
Impact: None
3. Problem: (CQ43517) SLES11u0 iSCSI: SUT hangs when unexpected SYN packet was received under traffic
Cause: TCP reset initiated by FW caused endless wake ups for FW
Change: Fixed in FW 5.3.8: changed setting of FW internal flags
Impact: None
4. Problem: iSCSI offload: Memory sanity of thread check fail during Query ramrod
Cause: During Query ramrod, when FW prepared the context for upload on the scratchpad, it exceeds the thread scratchpad boundary
Change: Fixed in FW 5.3.8: use the scratchpad within the thread boundary only
Impact: None
5. Problem: iSCSI offload: TCP Close failed
Cause: Bug in byte credit update during termination
Change: Fixed in FW 5.3.8
Impact: None
6. Problem: FCoE INIT ramrod was never completed
Cause: Reading from inappropriate VQ in Tstorm
Change: Fixed in FW 5.3.8: reading from to the correct VQ
Impact: None
Enhancement ----------- 1. Request: BCM577xx support for FW 5.3.8
Change: As requested
Impact: None
2. Request: Adding support broadcast and multicast received packets in L2 switch independant mode
Change: In FW 5.3.8 as requested
Impact: None
Version 1.53.3 (Oct xx, 2009) ==============================
Fixes ----- 1. Problem: Only Tx queue 0 was used in default configuration on kernel 2.6.30 and above
Cause: bnx2x_select_queue() was returning 0 by default
Change: Make bnx2x_select_queue() return stack tx_hash() by default
Impact: None
Enhancement ----------- 1. Request: Add a separate L2 ring for FCoE L2 traffic
Change: As requested
Impact: None
Version 1.53.2 (Oct 8, 2009) ==============================
Fixes ----- 1. Problem: 57712 failed to receive data from network
Cause: Incorrect MAC type selected during initialization
Change: MAC initializaton fixed
Impact: None
2. Problem: 57712 failed to bring up interface
Cause: Unhandled attention interrupt caused processor to stall
Change: Added handling for new attentions
Impact: None
Version 1.53.1 (Oct 5, 2009) ==============================
Enhancement ----------- 1. Request: 57712 support for FW 5.3.7
Change: As requested
Impact: None
Version 1.53.xx (Sep xx, 2009) ==============================
Enhancement ----------- 1. Request: When PFC is enabled, set BigMAC to relay control packets to the system as well, and enable BigMAC to react on received Pause packets
Change: As requested
Impact: None
Version 1.53.0a (Oct 1, 2009) ==============================
Enhancements ------------ 1. Request: Use FW 5.3.7
Change: As requested
Impact: None
2. Request: Add support for BCM57712 (by compilation flag)
Change: As requested
Impact: None
Version 1.51.0a (Sep 14, 2009) ==============================
Fixes ----- 1. Problem: Enabling fairness algorithm in the middle of the run causes the function to stop transmitting.
Cause: The fairness credit is not initialized in this case.
Change: Change the fairness credit init value.
Impact: None.
2. Problem: (CQ42873) No traffic when number of receive buffers is configured to 50 (the minimum) in the advanced properties page.
Cause: Firmware is always saving a CQE for each TPA aggregation. So in case less then 75 CQEs are on the ring, the firmware starts dropping packets.
Change: Check if TPA is enabled before deciding if to drop packet. If TPA is disabled save only 11 CQEs instead of 75.
Impact: None.
Enhancements ------------ 1. Request: Use FW 5.3.4
Change: As requested
Impact: None
Version 1.51.x (Aug xx, 2009) =============================
Fixes ----- 1. Problem: Link is down with BCM8481 when connected to 1G device after it was connected to 100M device
Cause: When link type changes from SGMII to GMII/XGMII, the SGMII configuration wasn't removed
Change: Remove SGMII configuration in non-SGMII link type
Impact: None
2. Problem: BCM8481 link is not able to link up after cable plug out/in
Cause: New BCM8481 image required new configurtion of the LED4 signal which generate the interrupt
Change: Detect link down using the LED4 signal rathen than the BCM8481 registers
Impact: None
3. Problem: Link is down with BCM8481 when connected to 1G device after it was connected to 100M device
Cause: When link type changes from SGMII to GMII/XGMII, the SGMII configuration wasn't removed
Change: Remove SGMII configuration in non-SGMII link type
Impact: None
4. Problem: BCM8481 link is not able to link up after cable plug out/in
Cause: New BCM8481 image required new configuration of the LED4 signal which generate the interrupt
Change: Detect link down using the LED4 signal rather than the BCM8481 registers
Impact: None
5. Problem: Driver might read corrupted data from shared memory in case bootcode is missing
Cause: Some pieces of code are not protected in case bootcode is missing
Change: Add additional protection in case bootcode is missing
Impact: None
Enhancements ------------ 1. Request: When PFC enabled, pass pause frames towards the NIG
Change: As requested
Impact: None
2. Request: Improve FP performance
Change: Remove writing ACK to USTORM from Tx flow and to CSTORM from Rx
Impact: None
3. Request: Handle fan failure for BCM8481 PHY
Change: As requested
Impact: None
4. Request: Once PFC is selected along with emac, it is required to set BIT 3, KEEP_MAC_CONTROL, at emac register rx_mode. Setting this bit causes MAC control frames (except for pause frames) to be passed on for processing. This setting has no affect on the operation of the pause frames. This bit affects all packets regardless of RX Parser packet sorting logic.
Change: As requested
Impact: None
5. Request: Use FW 5.1.23.1
Change: As requested
Impact: None
6. Request: Support kernel 2.6.31 (RC2)
Change: Use DMA_MAP macros and .ndo_select_queue
Impact: None
7. Request: (CQ41112) - PHY LED Programming for BCM8481 on BlackBird (BCM957711A1100G) Production Board
Change: As requested
Impact: None
8. Request: Increase DMAE max write size for 57711/57711E
Change: As requested
Impact: None
9. Request: Not handling statistics in panic condition
Change: As requested
Impact: None
10. Request: Enhance bnx2x_panic_dump() - print SB data
Change: As requested
Impact: None
Version 1.52.2 (Aug 18, 2009) ============================= Fixes ----- 1. Problem: (CQ42998) 57711E PF on OS linked even after unassigning network in VC
Cause: ethtool reports the physical link status instead of PF OS link status
Change: bnx2x_get_link() returns no link if driver is not in open state
Impact: None
2. Problem: ethtool displays 57711E PF link speed as 0 in certain scenario
Cause: VC assigned network and max bandwidth were not refreshed during driver load
Change: Refresh the VC assigned network and max bandwidth during driver load
Impact: None
3. Problem: syslog and kernel logs always report 57711E PF speed as 10000 Mbps
Cause: bnx2x_link_report() reports the actual physical link speed instead of the max bandwidth assigned to the PF
Change: Report the max bandwidth assigned to the PF
Impact: None
4. Problem: In some cases FW does not respond in time to driver requests and thus driver load fails
Cause: For certain PHYs, FW might need some more time before responding to driver request
Change: Increase the timeout up to 5 sec
Impact: None
Enhancements ------------ 1. Request: Set interrupt coalescing granularity to 4us instead of 12us
Change: As requested
Impact: None
2. Request: Change default interrupt coalescing numbers to supported numbers
Change: Since the interrupt coalescing granularity is 4us, a value of 25 is actually configured as 24 to the HW
Impact: None
3. Request: Fix bnx2x_fw_dump() to compute trace start address based on shmem offset
Change: As requested
Impact: None
Version 1.52.1 (Aug 12, 2009) ============================= -- Upstream Version -- Fixes ----- 1. Problem: Link is down with BCM8481 when connected to 1G device after it was connected to 100M device
Cause: When link type changes from SGMII to GMII/XGMII, the SGMII configuration wasn't removed
Change: Remove SGMII configuration in non-SGMII link type
Impact: None
2. Problem: BCM8481 link is down after cable plug out/in
Cause: New BCM8481 image required new configuration of the LED4 signal which generate the interrupt
Change: Detect link down using the LED4 signal rather than the BCM8481 registers
Impact: None
3. Problem: (CQ35477) Incorrect display of External Phy Firmware Version for Everest XFP board.
Cause: External Phy Firmware Version for BCM8705 PHY used to display 0000:0000
Change: Change not to display PHY FW version
Impact: None
4. Problem: In BCM8727, spirom was loaded first on slave port, rather than on the master port. This may lead to xaui pll issue.
Cause: Port-Swap wasn't considered when loading spirom to the BCM8727, hence first the slave port was loaded with the spirom.
Change: First load the SPIROM to the master port.
Impact: None
5. Problem: Possible FW assert in driver unload/load test case
Cause: Possible race on statistics state machine state change
Change: Added a write barrier to ensure that the state change is committed
Impact: None
Enhancements ------------ 1. Request: In promiscuous mode, pass management traffic to the host
Change: As Requested
Impact: None
2. Request: PCI drivers that implement the struct pci_error_handlers' error_detected callback should return PCI_ERS_RESULT_DISCONNECT if the state passed in is pci_channel_io_perm_failure
Change: As Requested
Impact: None
3. Request: (CQ41112) PHY LED Programming for BCM8481 PHY
Change: As requested
Impact: None
4. Request: (CQ41067) Add support for CL73 on XAUI
Change: As requested
Impact: None
Version 1.52.0 (Jul 28, 2009) =============================
Fixes ----- 1. Problem: Redundant settings of vlan_features at set_tso
Cause: There is no need to change vlan_features at set_tso since this field is a capability field and not current settings
Change: Remove redundant code
Impact: None
2. Problem: (CQ42550) No host traffic when NCSI is enabled on some systems
Cause: The driver did not set the required filtering flags and received only traffic which was not intended for the BMC - on some systems, this is not enough and the driver should enable its own masking
Change: Setup the driver mask to receive traffic even when NCSI is enabled
Impact: None
Version 1.50.13 (Jul 22, 2009) ==============================
Enhancements ------------ 1. Request: Update to FW 5.0.21
Change: As requested
Impact: None
Version 1.50.12 (Jul 16, 2009) ==============================
Fixes ----- 1. Problem: In some TPA aggregation cases, might go into TCP slow-start instead of fast-retransmit
Cause: When TPA is used, pure ACK on open aggregation was aggregated
Change: (FW 5.0.20) Do not aggregate pure ACK packets in TPA
Impact: None
Version 1.50.11 (Jul 7, 2009) =============================
Fixes ----- 1. Problem: Setting rx-usecs to the value less than 12 causes the traffic to stop
Cause: Did not disable HC coalescing when set the coalescing timeout to zero (coalescing timeouts are multiples of 12us)
Change: Disable HC coalescing, when timeout is set to the zero
Impact: None
2. Problem: Packet descriptors in NIG might get out of sync if management egress traffic is pass through during self test
Cause: During loopback test management egress traffic might be routed to the host and will not be cleared when exiting the diag mode
Change: Disable management egress traffic when driver is in diag mode
Impact: None
Version 1.50.10 (Jul 1, 2009) =============================
Fixes ----- 1. Problem: (CQ42298) Management traffic does not resume after self test
Cause: Writing to the egress management FIFO during the memory test interpreted as a start of a management packet and cause the FIFO not to be empty
Change: Remove the write to the egress management FIFO from the self test
Impact: None
2. Problem: Link up time takes too long with BCM8727 based NICs
Cause: EDC mode is not set automatically
Change: Set EDC mode manually according to the SFP+ module type detected (Passive DAC / Active DAC / LC-LRM / LC-SR / LC-LR)
Impact: None
3. Problem: (CQ41567) In BCM8727 based NICs, when SFP+ module is not plugged, there is continuous messages of Link Down
Cause: The EDC tries to process the Rx data/noise because its OPRXLOS input signal is false (low), indicating an Rx signal is present.
Change: Perform 'Or' of the Active Module Absent Level with the Active Laser Loss of Light Level. This way we tell the EDC not process Rx data/noise when the module is not present.
Impact: None
Version 1.50.9 (Jun 25, 2009) =============================
Fixes ----- 1. Problem: Low throughput when using VLAN on kernel 2.6.26 or above
Cause: New VLAN_features field in struct net_device was not initialized hence no offload capabilities were available with VLAN
Change: Initialize VLAN_features field in struct net_device
Impact: None
2. Problem: No event log in case fan failure occured prior to loading the driver
Cause: The event was not detected since it was already set when the driver was loaded
Change: Check for the event on load time
Impact: None
3. Problem: Loopback test in self test might fail in case NCSI is enabled
Cause: NCSI egress traffic is received instead of the loopback test packets
Change: Disable NCSI egress traffic during loopback test
Impact: None
4. Problem: ethtool reports link up when the device is down
Cause: Bug in ethtool_op_get_link()
Change: Use bnx2x_get_link() instead
Impact: None
5. Problem: 57711E WoL does not work if only one function per port was active prior to shutdown
Cause: WoL is configured to work in SF mode
Change: Set the chip back to SF mode (so WoL will work) even if only one function was loaded per port in MF mode
Impact: None
Version 1.50.8 (Jun 8, 2009) ============================
Fixes ----- 1. Problem: When running many TCP connections (>200) on both ports, some connections hangs
Cause: When all TPA aggregations are occupied, FW can override the RX CQE consumer of the other port
Change: Fix in FW 5.0.18: reload the RX CQE consumer from RAM after TPA handler breaks to sleep
Impact: None
2. Problem: CL73 enhancement causes link down
Cause: Unknown
Change: Revert CL73 enhancement until problem resolved
Impact: None
Version 1.50.7 (Jun 4, 2009) ============================
Fixes ----- 1. Problem: (CQ41533) Unapproved modules behavior is not enforced according to nvram configuration
Cause: In case the module was not approved, the function quit before enabling the Tx laser - so even when set to warning, there was no link. When set to power off the module, there was continues false indication of over current when the module was extracted
Change: When set to warning - enable the module. Validate that the module is present before checking for over current indication
Impact: None
2. Problem: The coalescing timeout value displayed by `ethtool' is different for the one used by the FW
Cause: The limitation for coalescing timeout values in driver's `ethtool -C' callback was wrong
Change: Fix the limitation for coalescing timeout in `ethtool -C' callback
Impact: None
Enhancements ------------ 1. Request: Reduce the number of cache misses in a fast path
Change: Avoid extra cache miss by updating `trans_start' from inside start_xmit() as long as it's done by the core network layer starting from kernel 2.6.31
Impact: None
2. Request: (CQ41067) Add 5771x CL73 support
Change: As requested
Impact: Everest is now able to link with devices which operate in CL73 alone / CL37 alone / or both
3. Request: Make 8727 over-current behavior code more efficient
Change: As requested
Impact: None
Version 1.50.6 (Jun 1, 2009) ============================
Fixes ----- 1. Problem: In 8727, after power-fault occurred and the driver is unloaded and then reloaded, the interrupt is not cleared
Cause: In this scenario, the mod_abs mode remain in "wait for module plugged in", so interrupt was not cleared
Change: Set module_absent to wait for module absent scenario
Impact: None
2. Problem: There is no need to read the warning string for un approved modules from the FW/nvram
Cause: This is over design that cause unnecessary overhead - a constant string can be used
Change: Use constant warning string instead of receiving it from FW/nvram
Impact: Warning message is not to be used in the modules nvram file
3. Problem: High CPU usage in bnx2x_free_tx_pkt()
Cause: prefetch(skb_shinfo(skb)) implied immediate cache miss when NET_SKBUFF_DATA_USES_OFFSET is enabled
Change: Replaced prefetch(skb_shinfo(skb)) by prefetch(&skb->end). This would prefetch only the first one from two cache misses needed for reading of skb_shinfo(skb)->nr_frags, which is needed by dev_kfree_skb(skb), but it will do it in a background avoiding an immediate CPU stall
Impact: None
Enhancements ------------ 1. Request: Add support for BCM8727 without over current detection (BCM8727_NOC)
Change: As requested
Impact: None
Version 1.50.5 (May 26, 2009) =============================
Fixes ----- 1. Problem: (CQ38975) Failed to setup leading connection after a lot of iterations of "down-up" test. Workaround for CQ37893 (Use INTx mode when MSI-X fails due to memory allocation failure) was broken
Cause: bnx2x_set_int_mode() wasn't returning a status, thus there was no way to catch a mentioned above memory allocation failure
Change: Return a status from bnx2x_set_int_mode()
Impact: None
2. Problem: (CQ41349) Linux panic when disabling RX chksum and running RX traffic
Cause: TPA enabled option was not controlled per function/queue level
Change: FW fix in version 5.0.16: TPA enabled is now controlled per function/queue level
Impact: None
3. Problem: (CQ41434) ethtool -S was printing junk on kernels with RSS support
Cause: There was a bug in function returning number of lines in device statistics bnx2x_get_stats_count - it was returning more than there actually were)
Change: Make bnx2x_get_stats_count return the correct number
Impact: None
Enhancements ------------ 1. Request: Support approved module list and warn if the module is not on the list
Change: This feature requires bootcode 5.0.6 or later and a valid optic modules image on the nvram. The feature is controlled by nvram option 81
Impact: None
2. Request: Allow enabling and disabling the fan failure mechanism for different PHY types
Change: Determine if fan failure enforcement is required according to nvram configuration. The configuration can be auto enforcement according to the PHY type, disabled or enabled
Impact: None
3. Request: Support firmware flow control when consuming SGEs
Change: FW change in FW 5.0.16: Added check for Flow control when consuming SGEs from host
Impact: None
4. Request: Advertise driver DCC capabilities
Change: As requested
Impact: None
Version 1.50.4 (May 18, 2009) =============================
Cause: LSO packets with BDs that point to buffers that are less than MSS size caused the firmware to send illegal bytes within the same LSO packet
Change: FW fix in version 5.0.14
Impact: Regression introduced in v1.50.2
2. Problem: (CQ41198) modprobe generate error on RH4.6 or 4.7 which will cause kernel panic
Cause: pci_register_driver() returns count and not errno
Change: Ignore the return code from pci_register_driver() in kernels below 2.6.10
Impact: None
3. Problem: (CQ38975,CQ38925) Failed to setup leading connection after a lot of iterations of "down-up" test
Cause: There were a few memory barriers missing
Change: Add missing memory barriers
Impact: None
Enhancements ------------ 1. Request: Reduce the time spent in skb_release_data()
Change: Add prefetch(&skb->end) before calling dev_kfree_skb in order to bring in the cache line that skb_release_data() will eventually need (based on the bnx2 patch proposed by Eric Dumazet)
Impact: None
2. Request: (CQ33228) Add required IOCTLs to support PHY FW upgrade
Change: Add 3 magic numbers to the ethtool -E (eeprom) command to support PHY FW upgrade init, PHY FW upgrade complete, and PHY re-init after upgrade Add CL45 MDIO IOCTL support
Impact: None
3. Request: Add support for BCM8481 SPI-ROM upgrade
Change: As requested
Impact: None
Version 1.50.3 (May 14, 2009) =============================
Fixes ----- 1. Problem: (CQ40848,CQ40835) System breaks due to a firmware assert
Cause: Firmware asserted when PCI read latency for RX BD ring was longer then 20usec
Change: FW fix in version 5.0.12: Replace the workaround by a flow which polls on the RX BD ring every 4usec
Impact: None
2. Problem: (CQ36705) Performance on 57711/57711E is lower when flow control is enabled than when flow control is disabled
Cause: L2 firmware flow control was enabled for 57711/57711E and caused performance decrease
Change: Disable L2 firmware flow control by default (add new module parameter to enable it)
Impact: None
3. Problem: Workqueue might not be freed if driver fail to register
Cause: Workqueue is not freed if driver fail to register
Change: Free workqueue when driver fail to register
Impact: None
4. Problem: Negative number of received packages might be returned in STOP_ON_ERROR debug mode
Cause: Negative errno is returned in STOP_ON_ERROR debug mode
Change: Do not return negative number of received packages
Impact: None
5. Problem: Fan failure on BCM8727 was not supported on port 1
Cause: The fan failure assertion was tied only to port 0
Change: The fan failure assertion is tied to port 1 also
Impact: None
6. Problem: BCM8727 shows link up while RX is disabled
Cause: When module-compliance enforcement is enabled, and non-compliant module is detected, then the driver disables the TX-Laser for the phy, yet the link keeps showing link up.
Change: When link is changing, in case the TX-laser is off, indicate that the link is down although the phy detects RX link up.
Impact: None
7. Problem: (CQ41000) Could miss link up event in BCM8727 right after optic module insertion
Cause: At the time that SFP+ module plugged-in was triggered, driver enabled the module while ignoring link change
Change: Check for link changes during module plugged in/out
Impact: None
8. Problem: BCM8727 doesn't link in 10G after changing from 1G
Cause: 10G default configuration was overwritten after setting 1G configuration. Since the phy is not reset, the configuration for 10G doesn't go back to default after link speed change
Change: When setting 10G, enforce 10G configuration, and not relay on the default configuration.
Cause: BCM57710 was unable to receive multicast packets. This BUG was introduced with transition to the new Rx HSI. It's unlikely that this failure is SuSE 11 specific
Change: Fix BCM57710 specific multicast configuration code
Impact: None
Enhancements ------------ 1. Request: Add dropless_fc module parameter to send pause frames in case where one of the host buffers (when in RSS mode) are exhausted
Change: As requested
Impact: None
Version 1.50.2 (May 05, 2009) =============================
Fixes ----- 1. Problem: (CQ40300) XFP adapter shows link up in network properties with no cable
Cause: Link status register was updated long after interrupt was triggered
Change: Check that RX PMD Loss of Sync bit is cleared and RX PMD Sync Acquired bit is set to detect link
Impact: None
2. Problem: When Over-Current state is established, LASI interrupts are not cleared
Cause: In this scenario, the module is powered-off so OPTXFLT/OPRXLOS indications are set. This cause a fixed RX_ALARM indication which cannot be turned off
Change: When Over-current condition is detected, set RX_ALARM to detect only module-absent events, so when a new module is plugged in, it will be detected and then RX_ALARM will be set to detect link as well
Change: From now on bnx2x_main.c doesn't include huge X_init_values.h files. Instead X_init_values.h were transformed to X_init_values.c, which also include internal pointers initialization function for the appropriate chip revision
Impact: None
3. Request: Add additional support for BCM8727
Change: Add support module detection, over-current detection and SFP+ EEPROM access
Impact: None
4. Request: Add fan-failure check for BCM8727
Change: As requested
Impact: None
Version 1.50.1 (April 27, 2009) ===============================
Fixes ----- 1. Problem: (CQ39681) Dtape test fails on Dell TL2000 media changer device
Cause: Misalignment between driver and firmware
Change: FW fix in version 5.0.8
Impact: None
2. Problem: When several protocols work together, interrupt rate is the sum of all protocol rates, instead of the maximum between them
Cause: State machines in host coalescing code were independent and generated interrupts on their will
Change: FW fix in version 5.0.8: Add dependency between the states machine - when an interrupt is generated then all state machines of this status block are handled as expired, resulting with lower interrupt rate
Impact: None
3. Problem: Bootcode unable to set phy configuration
Cause: When driver is loaded, it sets Serdes to work in CL45 while the bootcode is using CL22 for phy access, so when driver is unloaded, bootcode unable to access the phy.
Change: When driver is loaded set Serdes mode to CL22 only when 1G-switch is set. This shall solve the issue for older bootcodes, and will be fixed in newer bootcodes
Impact: None
4. Problem: BCM8481 is not able to link up in legacy speeds
Change: Removed taking tx_lock in Tx interrupt flow. This also voided a need for tx_xon_tasklet - Tx is moved to XON state directly from bnx2x_tx_int
Impact: None
2. Request: Add support for new BMAC HW block for new chip types
Change: When accessing the new BMAC, use the new registers. No need to initialize the PBF HW block credits since flow-control is always enable in that block.
Impact: None
3. Request: Enable support for other chips in more general way.
Change: Split init values and FW into 2 different files. Work against pointers in bnx2x struct instead of global arrays.
Impact: None
4. Request: Add initial support for BCM8727
Change: Add support for the new dual-port SFP+ phy
Impact: None
5. Request: In BigMac2, when PFC enabled, pass pause frames towards the NIG
Change: Set the appropriate bit in the bigmac control register
Impact: None
6. Request: Improve Rx packet rate
Change: FW 5.0.8
Impact: None
Version 1.50.0 (April 02, 2009) ===============================
Fixes ----- 1. Problem: Rx was getting stuck on ia64 platform when system page size was configured to be 64KB on the kernels 2.6.27 and later
Cause: The implementation on PAGE_ALIGN macro has been changed, which caused downcast in some places in the code and as a result improper HW configuration
Change: Add a proper casting for the argument of SGE_PAGE_ALIGN macro
Impact: None
2. Problem: (CQ39552) Link LED is turned OFF while running external loopback test
Cause: When using phy loopback, the link doesn't actually comes up since there's no link partner
Change: Set link led up on loopback test
3. Problem: BCM8481 is not able to link up in 10/100/1000 Mbps
Cause: No 10/100/1000 link signal is connected from the BCM8481 to the Everest
Change: BCM8481 will connect LED4 signal to the Everest LASI signal. The Everest will use the NIG latching mechanism which allows to catch a link event even if the link toggles fast
4. Problem: SFP+ (BCM8726) boards do not use flow-control
Cause: Flow control wasn't set for BCM8726
Change: Set flow control according to configuration in BCM8726
Impact: None
5. Problem: Flow-control in MF mode should behave like in SF mode
Cause: Old restriction which is not necessary
Change: Remove special flow-control configuration in MF mode
Impact: None
6. Problem: CNIC sanity tests fails
Cause: When changing to new dynamic HC code, no RAM line was allocated to default SB so there was a memory corruption
Change: FW fix in version 5.0.3: Add RAM line for default SB to dynamic HC array
Impact: None
7. Problem: (CQ39503) Transmission stops for 5 second
Cause: Confusion in scaling of the receive window of the remote. Sometimes it is taken "as is" as a number of bytes, without scaling
Change: FW fix in version 5.0.3: Scaling added in 3 places in the code
Impact: None
8. Problem: Low performance on Tx side in UDP test with small packets
Change: HC coalescing has been moved from USTORM to CSTORM. TSTORM performance has been improved. FW 5.0.3
Impact: None
2. Request: Add support for DCC
Change: As requested
Impact: None
3. Request: Improve performance
Change: Connect Tx and Rx to different interrupt vectors
Impact: None
4. Request: Add module parameter controlling number of Rx and Tx queues
Change: As requested. Number of Tx queues must be not more than number of Rx queues
Impact: None
5. Request: Add "per function" statistics support for NCSI management
Change: As requested
Impact: None
Version 1.48.106 (Mar 04, 2009) ===============================
Fixes ----- 1. Problem: (CQ38925) Unload/Load with netperf TCP traffic test eventually caused a SETUP ramrod failure
Cause: ISR discarded a SP interrupt due to weak synchronization of atomic variable that disables interrupt handling (intr_sem)
Change: Add write memory barriers where intr_sem is updated
Impact: None
2. Problem: Possible problem in pram initialization
Cause: There was a bug in init code generation script
Change: Fix the pram initialization
Impact: None
Version 1.48.105 (Mar 02, 2009) =============================== -- Upstream Version -- Fixes ----- 1. Problem: Unload/Load test under traffic caused kernel panic in skb allocation/freeing functions
Cause: Previously added patch (enhancement 6 in release 1.48.100) broke proper usage of net_device object
Change: Remove the mentioned patch
Impact: None
Version 1.48.104 (Mar 01, 2009) ===============================
Fixes ----- 1. Problem: New phy version (P14) of the BCM8726 unable to link up
Cause: The new phy version doesn't behave exactly like its previous version (P13), hence requires some adjustments
Change: 1. Microcode download requires write of another register 2. Read from "Limiting/LRM mode" register before setting Limiting mode
Cause: Tx wasn't properly disabled in the 'close' flow
Change: Properly disable Tx during 'close' flow
Impact: None
Enhancements ------------ 1. Request: Use DMAE to zero the FW internal memory before loading the FW
Change: As Requested
Impact: None
2. Request: Remove "budgeting" in bnx2x_tx_int
Change: As Requested
Impact: None
3. Request: By default, multi_mode is disabled for old NAPI kernels (up to 2.6.24)
Change: As Requested
Impact: None
Version 1.48.102 (Feb 12, 2009) =============================== -- Upstream Version -- Fixes ----- 1. Problem: FW stats counters might not be updated when running heavy stress test
Cause: Sending FW stats ramrod query depends on stats_pending flag. This flag might not be cleared by sp_task() under heavy stress. Thus, next FW stats ramrod query will not be send
Change: Clear stats_pending flag at the end of storm_stats_update()
Impact: None
Version 1.48.101 (Feb 09, 2009) ===============================
Fixes ----- 1. Problem: Compilation is broken on kernels >= 2.6.24
Cause: FW constant rename was not updated in latest drop
Change: Fix constant name
Impact: None
Version 1.48.100 (Feb 09, 2009) ===============================
Fixes ----- 1. Problem: "ext_phy_fw version" command for BCM8706 sometimes shows invalid version number
Cause: The version number is read during init phase. Reading the BCM8706 version during init phase is done premature
Change: During init phase of the BCM8706, wait until the firmware is loaded completely before reading the version number
Impact: None
2. Problem: When setting pre-emphasis values for external phys, the XGXS is also set
Cause: In external-phy boards, when pre-emphasis values were set in the nvram, both the external phy and the XGXS pre-emphasis values were set, while the values fit the external phy only
Change: Set pre-emphasis values in XGXS only for direct type boards
Impact: None
3. Problem: (CQ37809) loopback test failure
Cause: The link was initialized for real work mode and then re-init to loopback mode. During that time, incoming packets might be queued in the rx ring in front of the loopback packet
Change: Always initialize the link to loopback mode if load_mode is LOAD_DIAG
Impact: None
4. Problem: Possible false error in the idle check section of the self test regarding the CFC_REG_ACTIVITY_COUNTER register
Cause: The test was designed to check halted system (after fatal error) and thus assumed that the chip is idle
Change: Change the test to "info" debug print
Impact: None
5. Problem: (CQ39439) mf_cfg function disabled error message displayed
Cause: Putting the driver into disabled mode was considered an error
Change: Change the printed message from error to a notification
Impact: None
6. Problem: (CQ38925, CQ37645) ifconfig ethX down up may cause a wrong MSI configuration, which will prevent MSI interrupts to arrive
Cause: Chip reset function cleared "MSI reconfigure enable" bit
Change: Don't clear the "MSI reconfigure enable" bit
Impact: None
7. Problem: Uninitialized HW blocks
Cause: XCM and BRB1 port init part were missing
Change: Add XCM and BRB1 port init part
Impact: None
8. Problem: Constant pause is sent to the network if pause is enabled and TPA is disabled
Cause: Wrong thresholds were configured
Change: Set the thresholds to 0 if TPA is disabled
Impact: None
9. Problem: Unloading UNDI by the driver in E1HMF mode might disable interrupts of the wrong function
Cause: HC regs are splited by 4
Change: Pritend to write as function 0 when writing to HC regs
Impact: None
10. Problem: BCM8726 MDIO access is not locked as it should be
Cause: MDC/MDIO access to BCM8726 is done via single EMAC, hence all MDC/MDIO access to this phy needs to be locked, like BCM8072 and BCM8073
Change: Lock the hardware using MDIO_RESOURCE when accessing the BCM8726 phy via MDIO
Impact: None
Enhancements ------------ 1. Request: Set default WoL state according to nvram settings
Change: As Requested
Impact: None
2. Request: WRR between different COS queues at TX side
Change: Added in driver and in FW 4.8.53
Impact: None
3. Request: Add ability to change BCM8726 TX PreEmphasis using nvram configuration
Change: When nvram config "Override pre-emphasis configuration" (75) is set, use Tx pre-emphasis nvram configuration (47), lane0 value to set the Main Tap and lane1 to enable TX-PreEmphasis in BCM8726
Impact: None
4. Request: Add basic support for BCM8481
Change: As Requested
Impact: None
5. Request: Limit Tx queue number to one for kernels 2.6.24 - 2.6.26 (non-TSS kernels with new NAPI)
Change: As Requested
Impact: None
6. Request: Add RSS support for old NAPI kernels (up to 2.6.24) that support MSI-X
Change: As Requested
Impact: multi_mode = 1 is now the default for all kernels
Version 1.48.51 (Jan 26, 2009) ==============================
Fixes ----- 1. Problem: Load balancing didn't work
Cause: Driver assumed that there was Tx work as long as driver packets producer and consumer were not equal
Change: Changed driver's Tx work amount evaluation logic
Impact: None
Version 1.48.50 (Jan 22, 2009) ==============================
Fixes ----- 1. Problem: (CQ38862) modprobe fails to load driver on SuSE 11
Cause: SuSE 11 does not allow 3rd party modules to be loaded without toggling a flag in /etc/modprobe.d/unsupported-modules
Change: Toggle the bit during make install
Impact: None
2. Problem: Accessing nvram while the driver is down caused PCI error
Cause: The driver attempted to access the nvram while the device was in D3 since it was disabled
Change: Prevent nvram access when the device is down
Impact: None
3. Problem: FW assert while running multi_mode=2 with tx MULTI_QUEUE enabled
Cause: start_xmit() selected different tx queue than the tx_lock was taken
Change: Implement dev->select_queue() callback so start_xmit() selects the correct tx queue
Impact: None
4. Problem: Compilation problem with kernel 2.6.29
Cause: netif_rx_schedule and netif_rx_complete do not require the device parameter anymore
Change: Do not pass the device paramter for those functions for kernels above 2.6.29
Impact: None
5. Problem: Invalid presentation of BCM8726 fw version
Cause: The register that holds the fw version is used for other functionality as well, and it is run over after firmware is loaded
Change: Save the firmware version of all external phys in shared memory, after firmware is loaded
Impact: None
6. Problem: BCM8726 may start tx laser before module detection occurs
Cause: Module detection used to be done during link update, which probably would be after tx was enabled
Change: From now on use interrupt driven event using GPIO3, to detect module plugged in/out, and execute module detection then
Impact: None
7. Problem: 1G switch configuration (using the 5th lane) doesn't work
Cause: Support for Serdes (5th lane) was not maintained since no production design used it and when switching to CL45 it stopped working
Change: In order for control the Serdes over Clause45, (and not Clause22), it requires first one time register setting in Clause22
Impact: None
8. Problem: Softlock during remove_one()
Cause: NAPI context was not released before unloading
Change: Release NAPI context before unloading
Impact: None
9. Problem: False self-test failures due to MC_ASSERT
Cause: iSCSI FW sometimes report run-time warnings which are acceptable and do not cause any harm
Change: Do not check for MC_ASSERT. A real FW error will cause the interrupt test to fail
Impact: None
10. Problem: Possible miss of FW response on unload
Cause: Missing memory barrier while waiting for FW response
Change: Add read memory barrier
Impact: None
11. Problem: (CQ37809) loopback test failure
Cause: A link change interrupt might be queued and activated after the loopback was set
Change: Lock all PHY activities while running loopback test
Impact: None
12. Problem: (CQ39057) Everest, 57710 Error message: bnx2x_start_xmit: BUG Tx ring full when queue awake
Cause: In kernels 2.6.24 - 2.6.26 (non-TSS kernels with new NAPI) there can be a possibility that NAPI instance (fp instance) other than the one moved Tx to XOFF state will wake the Tx So, this is highly possible that start_xmit is called while the ring is still full In any other kernel this state is an obvious bug
Change: Remove an error message in the code for the mentioned kernels
Impact: None
Enhancements ------------ 1. Request: Use FW 4.8.50
Change: As Requested
Impact: None
2. Request: BCM8726 should be able to link up at 1G
Change: Add support for 1G for BCM8726
Impact: When requested speed is 1G force, it will try to link in 1G force. When the speed requested is autoneg, and the speed mask capabilities contain 1G, it will try to autoneg in 1G as well as in 10G
3. Request: (CQ39048) Add ability to change 8706 XAUI RX Equalizer using nvram configuration
Change: When nvram config "Override pre-emphasis configuration" (75) is set, use the 3LSB bits of RX_equalizer nvram configuration (48) to set the BCM8706 XAUI RX Equalizer registers for each lane
Impact: None
4. Request: Verify external phy image before ROM upgrade
Change: New headers will be added to the images of external phys to be upgraded. Currently this list includes BCM8073, BCM8726 and SFX7101. The headers will be checked against fixed magic number and specific phy type
Impact: From now on, external phy images MUST include image header
Version 1.48.11 (Jan 13, 2009) ==============================
Fixes ----- 1. Problem: Possible memory overrun on platforms with page size more than 8K
Cause: "linearization" should take into an account system page size and run or not run accordingly
Change: Fixed the compilation condition
Impact: None
2. Problem: Compilation problem with kernel 2.6.28
Cause: struct net_device_ops was postponed to next release
Change: Remove struct net_device_ops from compilation
Impact: None
Enhancements ------------ 1. Request: Limit multi_mode to support only regular mode
Change: As requested
Impact: None
Version 1.48.10 (Jan 07, 2009) ==============================
Fixes ----- 1. Problem: (CQ39129) driver assert while logging out during iSCSI max sessions test
Cause: QM initialization was wrong
Change: Fix QM initialization
Impact: None
Version 1.48.9 (Jan 05, 2009) =============================
Fixes -----
1. Problem: (CQ38909) on IA-64 with TPA enabled, kernel memory was sometimes smeared (depending on the MTU size)
Cause: The max TPA fragments assumed 4KB pages and that system had 16KB pages
Change: Fix the SGE (TPA fragment) size to be system page size
Impact: Improved performance on systems with page size > 4KB like PPC and IA-64
Version 1.48.8 (Dec 31, 2008) =============================
Fixes -----
1. Problem: (CQ38992) on IA-64 Driver crash when transmitting on all 8 functions in chariot IPv6 with tx checksum disabled scenario
Cause: FW read the buffer descriptor (BD) producer and after that the BD itself before the BD content was updated. This is possible on IA-64 due to weak ordered memory module
Change: Add write barrier after updating the BD data and before updating the BD producer
Impact: None
Version 1.48.7 (Dec 30, 2008) =============================
Fixes -----
1. Problem: (CQ38985) Port swap is not working for BCM8726
Cause: BCM8726 is driven by MDC/MDIO through single EMAC. In case of port swap, the EMAC access was left with EMAC0
Change: In case port-swap is enabled in the NIG, access MDC/MDIO via EMAC1
Impact: None
2. Problem: BCM8726 was not reset when driver was unloaded
Cause: This phy hardware reset affects both ports and thus wasn't used
Change: When link needs to be reset, reboot the micro-controller of the BCM8726
Impact: None
3. Problem: BCM8726 was not reset during init
Cause: This phy is connected using static port-swap, hence the reset should have been triggered through the opposite port from the spec
Change: Set gpio1 during common init from port1 instead of port0
Impact: None
4. Problem: (CQ38991) In E1HMF mode some interfaces occasionally misreport link speed
Cause: Races between interfaces during init cause an interrupt event to be ignored
Change: Flag the device as "ready for interrupts" prior to enabling the interrupts
Impact: None
5. Problem: (CQ39057) Everest, 57710 Error message : bnx2x_start_xmit: BUG Tx ring full when queue awake.
Cause: Tx BD producer update may not be "seen" by bnx2x_tx_int function running on different CPU, thereby bnx2x_tx_int may erroneously conclude that it may wake Tx.
Change: Add smp_mb() after update of Tx producer before putting Tx to XOFF state.
Impact: None
6. Problem: In E1HMF mode with multi queue, functions 2..7 cannot receive data
Cause: Incorrect initialization of indirection table
Change: Initialize correctly the indirection table
Impact: None
7. Problem: The driver debug crash dump does not handle cyclic rings correctly
Cause: The debug prints were simply from start to end and did not print anything in case start < end (cyclic rings)
Change: Enhance the debug prints with cyclic logic
Impact: None
8. Problem: Packets dropped due to lack of host buffers were counted twice - in good and bad statistics
Cause: Firmware does not maintain separate counters for unicast/broadcast/multicast drops, therefore driver cannot subtract these values from the good packet/byte counters
Change: Fixed in FW 4.8.9
Impact: None
9. Problem: iSCSI FW: High non-paged host memory consumption
Cause: Unnecessary optimization of chipset<->memory bandwidth in expense of memory consumption
Change: Fixed in FW 4.8.9
Impact: None
Version 1.48.6 (Dec 18, 2008) =============================
Fixes ----- 1. Problem: System hangs when running ifconfig on an 8 CPUs system
Cause: A loop variable was used again in an inner loop. That caused an endless loop
Change: Use another variable for the inner loop
Impact: None
2. Problem: Some stats names are not displayed but their values were displayed in other stats
Cause: Incorrect condition caused to skip stats names but not their values
Change: Correct the condition
Impact: None
3. Problem: iSCSI FW: During connection establishment on-chip (option2), in case we receive SYN/ACK with incorrect dst_mac the chip gets stuck
Cause: This scenario led to accessing invalid PRAM address which made the chip halt
Change: Fixed in FW 4.8.8
Impact: None
4. Problem: NAPI poll mode was stopped (netif_rx_complete called) and HW interrupts reenabled even if the whole device quota had been consumed.
Cause: There was a bug in NAPI poll-mode canceling logic.
Change: Fix the logic in NAPI poll method.
Impact: None
Version 1.48.5 (Dec 11, 2008) =============================
Fixes ----- 1. Problem: TCP packets with VLAN weren't handled properly, when received in non-accelerated VLAN traffic mode (when VLAN tag is not stripped by the FW)
Cause: Driver didn't support receiving VLAN packets in non-accelerated mode. for TPA packets, there was a wrong IP header offset calculation and, as a result, writing IP checksum to the wrong offset. Non-TPA packets weren't handled right as well: driver always used vlan_hwaccel_receive_skb to pass an skb with VLAN to the stack, while it should use netif_receive_skb in non-accelerated case
Change: Fixed IP header offset calculation for TPA packets. Fixed VLAN skb handling logic.
Impact: None
2. Problem: (CQ38698, CQ37931) No link when using direct attached copper cable with BRCM8726 PHY
Cause: Passive copper cables should always operate in LRM mode rather than in Limiting mode
Change: In case of passive copper cables, link up in LRM mode
Impact: None
3. Problem: (CQ38815) iSCSI failure during hotplug
Cause: Not everything is setup before calling register_netdev(). pci_set_drvdata() and bnx2x_init_bp() were called after register_netdev(). This potentially can also affect L2 because bnx2x_open() can potentially be called before those 2 calls have successfully completed
Change: Call register_netdev only at the end of successful setup
Impact: None
4. Problem: (CQ38862) modprobe fails to load driver on SUSE11
Cause: SuSE does not allow 3rd party modules to be loaded without toggling a flag in /etc/modprobe.d/unsupported-modules
Change: Toggle the bit through the packaging script
Impact: None
5. Problem: iSCSI FW: In non-aligned PDUs with data-digest enabled, the data-digest is calculated to a wrong value
Cause: The CRC machine was not reset correctly in non-aligned PDUs
Change: Fixed in FW 4.8.6
Impact: None
6. Problem: iSCSI FW: Connection wasn't initialized with the right parameters for the TX in E1HMF mode
Cause: Initialization was done using SF mode
Change: Fixed in FW 4.8.6
Impact: None
7. Problem: (CQ38886, CQ38888) iSCSI FW: Double-vlan was not supported for iSCSI. The packet was transmitted with bogus IP length and no inner-vlan
Cause: The vlan flag and the header builder command size weren't set correctly
Change: Fixed in FW 4.8.6
Impact: None
8. Problem: Byte counters statistics did not count the 4 FCS bytes
Cause: The FCS bytes were not counted
Change: Fixed in FW 4.8.7
Impact: None
Enhancements ------------ 1. Request: SFP+ optical module (MSA) vendor verification should be optional when using BCM8726 PHY
Change: Verify the optical module vendor according to nvram configuration option #81: "Optic Module Vendor Enforcement"
Impact: The new nvram bit is visible using ediag version 4.8.3 or later
2. Request: In multi queue mode, separate FW stats per queue
Change: As requested
Impact: None
3. Request: Change some stats names: pause_frames_received is now rx_pause_frames pause_frames_sent is now tx_pause_frames timer_max_events is now rx_constant_pause_events
Change: As requested
Impact: None
4. Request: Align with RMON MIB (rfc 1757): net_device_stats.rx_bytes is total_bytes_received net_device_stats.multicast is total_multicast_packets_received
Change: As requested
Impact: None
5. Request: Use static singlethread_workqueue shared for all bnx2x interfaces
Change: As requested
Impact: None
Version 1.48.4 (Nov 26, 2008) =============================
Fixes ----- 1. Problem: CNIC driver is failing on higher functions of 57711E
Cause: The status block ID for the CNIC was not assigned correctly for higher functions
Change: Assign the status block ID according to the function ID
Impact: None
Version 1.48.3 (Nov 20, 2008) =============================
Fixes ----- 1. Problem: Intermittent MDC/MDIO failures on 8726 PHY
Cause: MDIO register access is sometimes broken since PHY is not hard reset
Change: Pull GPIO1 low for 1 ms after power-on. Note that the hard reset is a shared resource on the PHY
Impact: None
2. Problem: gso_type indication was not set for TPA packets
Cause: gso_type wasn not set
Change: Set gso_type accordingly
Impact: None
3. Problem: Possible false parity indication
Cause: When using 5 tuple hash (not used today) the searcher might falsely indicate parity error
Change: Mask bit 6 of the searcher parity errors
Impact: None
4. Problem: (CQ37809) Intermittent failures in ethtool diagnostic (CQ36771) Calltrace and interface locks up when up/down interface
Cause: If sp_task() is queued in the shared work queue after the linkwatch, it will be starved and will not update the link status until ethtool diagnostic ends and frees rtnl that linkwatch is waiting for
Cause: Inefficient implementation of ring management in firmware
Change: Fixed in FW 4.8.4
Impact: None
6. Problem: (CQ38424) SAFC iperf drop result is 5 times higher than previous build
Cause: Mis-configuration of the SAFC timeout
Change: The new SAFC timeout will be 200usec
Impact: None
Version 1.48.2 (Nov 10, 2008) =============================
Fixes ----- 1. Problem: SAFC packets were not generated periodically by NIG
Cause: A HW architecture bug
Change: Fixed in FW 4.8.3
Impact: None
Enhancements ------------ 1. Request: Support iSCSI MAC and VLAN per function in 57711E
Change: Added in FW 4.8.3
Impact: None
Version 1.48.1 (Nov 06, 2008) =============================
Fixes ----- 1. Problem: Possible race between init_one() and open() with calling to netif_carrier_off()
Cause: After register_netdev(), open() can be called at any time and the interrupt handler can be called after that. If you get a link change interrupt, the netif_carrier_* call from IRQ or NAPI poll can race with netif_carrier_off() call in probe.
Change: Move netif_carrier_off() to open()
Impact: None
2. Problem: Possible access to illegal addresses inside the chip during self test
Cause: Loop size was given in bytes and not in number of entries
Change: Fix the loop size
Impact: None
Enhancements ------------ 1. Request: Fewer dropped packets when flow control is enabled on 57711/57711E
Change: As requested
Impact: None
Version 1.48.0 (Nov 03, 2008) =============================
Fixes ----- 1. Problem: Failures on RH5 when using enabling and disabling the functions one by one on 57711E
Cause: Unloaded driver tries to access the PHY to get its FW version since RH calls "ethtool -i" periodically
Change: Clear the PMF indication when the driver is unloaded
Impact: The PHY FW is inaccessible when the driver is unloaded
2. Problem: Searcher block initialization for 57711E is wrong
Cause: The searcher registers are split (same address for all functions)
Change: Use the port offset and not the function offset
Impact: None
3. Problem: Kernel panic when failing to load the driver
Cause: netif_carrier_off was called before making sure that the driver can be loaded
Change: Call netif_carrier_off as last action in the probe
Impact: None
Enhancements ------------ 1. Request: Add iSCSI for 57711E
Change: FW 4.8.2 supports iSCSI for 57711E
Impact: None
2. Request: Add transmit multi queue support
Change: As requested
Impact: This fetaure is available on 2.6.27 kernel when using MSI-X
Version 1.46.12 (Oct 29, 2008) ==============================
Fixes ----- 1. Problem: (CQ37832) System crash when running TCP connections on 57711
Cause: Access to unsupported address in FW PRAM due to increased FW size
Change: Fixed in FW 4.6.21: Moved all operational FW code to legal PRAM addresses
Impact: None
2. Problem: After some cases of driver failure, driver cannot be re-loaded
Cause: The driver took the HW out of reset without making sure that it was indeed in reset state
Change: Reset the HW before taking it out of reset
Impact: None
3. Problem: (CQ37893) Driver failure when installed on RHEL4.5 from PXE Server
Cause: MSI-X fails due to memory allocation failure and though MSI registration succeeded interrupts are not received in MSI mode
Change: Use INTx mode when MSI-X fails due to memory allocation failure
Impact: None
Enhancements ------------ 1. Request: Add debug module parameter to force MRRS value
Change: As requested
Impact: None
Version 1.46.11 (Oct 23, 2008) ==============================
Fixes ----- 1. Problem: (CQ37915) On 57710, if self-test is run on port 1, port 0 stops transmitting/receiving traffic unless in promiscuous mode
Cause: Primary MAC address of port 0 is lost after the self-test on port 1
Change: Changed self-test to fix the problem
Impact: None
2. Problem: (CQ37087) iSCSI FW: Data digest error event found in event viewer
Cause: Wrong UPB command in non-aligned data that is adjacent to iSCSI header in the TCP segment from the target
Change: Fixed in FW 4.6.17
Impact: None
3. Problem: (CQ38061) iSCSI FW: Invalid iSCSI PDU seen while running OEM diagnostic to Equallogic target
Cause: Misinterpretation of the 3720 RFC regarding data-in sequences definition
Change: Fixed in FW 4.6.17
Impact: None
4. Problem: (CQ37861) iSCSI FW: BSOD occurred while running iLab's TOE automated tests and iSCSI traffic
Cause: Failed to identify task cleanup during processing of a data-in PDU that belong to the same task
6. Problem: Possible false warning (not a failure) in the idle check section of the self test regarding the BRB1_PRTY_STS register
Cause: The condition was not masked properly
Change: Fixed the condition check for that register
Impact: None
Enhancements ------------ 1. Request: Add support for BCM8726 (Dual port phy SFP+ ) including MSA module recognition and verification
Change: As Requested
Impact: None
Version 1.46.5 (Sep 17, 2008) =============================
Fixes ----- 1. Problem: (CQ36478) MSI fails on Big-Endian systems
Cause: The IGU was configured to swap the data over the PCI
Change: Config IGU not to swap the data and add swap in the driver where it is necessary
Impact: None
2. Problem: (CQ37309) Can not compile on some old kernels
Cause: Call to pci_disable_msi() was not under appropriate #ifdef
Change: Add the appropriate #ifdef
Impact: None
3. Problem: Self test sometimes indicates on a failure
Cause: A test result was declared as an error instead of a warning
Change: Declare the test result as a warning
Impact: None
Version 1.46.4 (Sep 16, 2008) =============================
Enhancements ------------ 1. Request: CNIC enabled in default compilation
Change: As Requested
Impact: None
Version 1.46.3 (Sep 11, 2008) =============================
Fixes ----- 1. Problem: (CQ34165) High number of pause frames
Cause: The thresholds in the receive buffer needed some tuning
Change: Tuned the thresholds in the receive buffer
Impact: None
2. Problem: (CQ36559, CQ36989) System crash when working on PPC with 64KB page
Cause: The allocated buffer was bigger than the PCI mapped buffer, and in the 64KB configuration the buffer is aligned only to 128 bytes and so the packet can overstep the PCI mapped area and cause a fatal error
Change: Map the same size as the allocated buffer size
Impact: None
3. Problem: (CQ36479) EEH recovery causes system crash
Cause: When EEH detects an i/o error it resets the device thus it cannot be accessed. In this case the driver needs to unload its interface only with OS, kernel and network stack but not with the device.
Change: Add a special unload function for EEH recovery that does not access the device
Impact: None
4. Problem: Option2 RST did not complete
Cause: Missing context initialization in FW
Change: Fixed in FW 4.6.10
Impact: None
5. Problem: (CQ37090) Placement of RQ data to wrong address
Cause: ASM problem
Change: Fixed in FW 4.6.10
Impact: None
6. Problem: (CQ36912) BSOD when destroying erroneous connections
Cause: Activity count leak
Change: Fixed in FW 4.6.10
Impact: None
7. Problem: (CQ 36987) Unable to perform media changer/tape functions
2. Request: Add stats counter for NIG timer max events
Change: As Requested
Impact: None
3. Request: Enable timer scan for CNIC
Change: As Requested
Impact: None
4. Request: Add support for using MSI interrupt mode
Change: As Requested
Impact: None
5. Request: (CQ36758) Firmware now enforces iSCSI licensing and fails the offload if no iSCSI initiator license exists
Change: Added in FW 4.6.10
Impact: None
Version 1.46.2 (Aug 25, 2008) =============================
Fixes ----- 1. Problem: (CQ36510, CQ36583) Link LED does not turn off when 1G link is lost when external PHY is present
Cause: The current code manually turned off the 10G LED but did not handle other speeds which are controlled by HW. Since the HW detect link with the external PHY, the link LED stayed on
Change: Turn off the LED for all speeds manually when link goes down
Impact: None
2. Problem: Packets with bad TCP/UDP checksum error are dropped
Cause: Actively dropping packets with bad TCP/UDP checksum in the driver
Change: Do not drop packets with bad TCP/UDP checksum - let the stack decide what to do with them
Impact: None
3. Problem: Some packets are dropped without showing on any statistics counter
Cause: The driver assumed that packets which were identified as bad are counted by the FW, but the FW does not count those when configured to pass them
Change: Add counters in the driver
Impact: None
4. Problem: (CQ36153) Flow control doesn't work against non KR switches
Cause: Missing support for clause-37 auto negotiation
Change: Add support for clause-37 auto negotiation
Impact: 0.5 seconds delay during autoneg
5. Problem: Link dangling during init
Cause: no delay after initial link change interrupt
Change: Add 30ms before allowing link update indications
Impact: Additional 30ms during init phase
6. Problem: Unable to load driver after iSCSI boot under incoming traffic
Causes: The reset function after iSCSI boot did not handle closing incoming traffic
Change: Close the port to prevent Rx traffic and clear all buffers
Impact: None
7. Problem: (CQ36408) Failed driver disk installation with SuSE10 and RH4
Cause: The CRC module is not part of the Kernel in those distributions
Change: Special driver disk compilation mode to include the CRC routine in the driver though it is an external module in normal installation with those distributions
Impact: The driver in the driver disk is less efficient due to the CRC algorithmic implementation and not static tables as in the CRC module which is used when loading the driver normally under SuSE10 and RH4
8. Problem: (CQ34921) Possible memory leak
Cause: rx_page_ring was not freed
Change: free rx_page_ring
Impact: None
9. Problem: (CQ36242) brb_truncate statistics increments to very high numbers
Cause: brb_truncate_discard is a 4 bytes variable but 8 bytes were copied to ethtool
Change: use brb_truncate from NIG and extend it to 8 bytes
Impact: None
10. Problem: Tx Pause were not send on 1G link
Cause: Missing initialization to the EMAC TX_MODE
Change: Set FLOW_EN bit in the TX_MODE in addition to the EXT_PAUSE_EN
Impact: None
11. Problem: (CQ36361) Changing speed to 1G on KR switch side results in no link in OS
Cause: When Serdes is configured to 1G, it should remove setting MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_SEL bit in MDIO_REG_BANK_SERDES_DIGITAL
Change: Unset MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_SEL bit for every link change
Impact: None
12. Problem: Possible loss of attentions
Cause: Attention mask register was manipulated without a proper lock
Change: Protect attention mask register using hw lock, use read modify write on this register
Impact: None
13. Problem: HW lock was sometimes not taken
Cause: HW lock was not taken per function
Change: use lock control per function
Impact: None
14. Problem: (CQ36089) RX counter on all functions are incorrect
Cause: tstorm_client.statistics_counter_id was 0 for all functions
Change: set tstorm_client.statistics_counter_id to the cl_id of the function
Impact: None
15. Problem: (CQ36090) down/up of the interface during traffic on the other interface caused traffic to stop
Cause: Aggregation context must be initialized only at COMMON init block
Change: Change initialization code and init-tool output
Impact: None
16. Problem: (CQ35672) Doorbell was arriving after halt and before start ramrod
Cause: XON/XOFF flow control should be disabled in NIC close flow
Change: Fixed XON/XOFF code
Impact: None
17. Problem: (CQ34555) MSI-x PCI spec aberration
Cause: PBA table starts from the middle of a page
Change: Use GRC access instead of BAR access
Impact: None
18. Problem: Lost link indication in BCM8073.
Cause: During link establishment LASI latched signal wasn't reset and stopped link change indication
Change: Fixed flow to clean latched LASI signal
Impact: None
19. Problem: Declaring bootcode timeout too soon
Cause: The bootcode can take a while to set a link when a link is needed (for example, WoL is enabled). The driver should allow adaptive scheme to wait for the bootcode
Change: Waiting up to 2 seconds in 10ms intervals
Impact: In some cases, the driver unload process will take up to 2 seconds
20. Problem: Wrong WoL capability report
Cause: The WoL capability was read from the nvram which was not always updated
Change: Determine the WoL capability from the PCI configuration space
Impact: None
21. Problem: (CQ36644, CQ366697, CQ36928, CQ36983) On some cases with low traffic, the computer was irresponsive up to the point of soft-lockup and even hard lockup. Ping-pong latency tests always hit this problem and so get very low result
Cause: If the FW was at the end of the Rx page, the driver will already be at the beginning of the next page. In this case the condition of having the driver and the FW on the same pointer was never true and so the driver kept polling until timeout or another packet came in. On driver unload (including intermediate driver unload like in MTU change or self-test) the lockup was fatal
Change: Change the check for "now work" to handle end of page as well
Impact: None
22. Problem: (CQ36697 CQ36771) Interface locks up when up/down interface
Cause: In nic_unload(), call to netif_poll_disable() cause to set __LINK_STATE_RX_SCHED flag that is checked in dev_close() in a loop forever. This flag is cleared by netif_rx_complete() called by bnx2x_poll() which is not called if !netif_running()
Change: Reorder nic_unload() - first close interrupts, then only if netif_running() call netif_poll_disable()
Impact: None
23. Problem: (CQ36795) driver fails to load after iSCSI boot
Cause: Unloading UNDI by the driver is protected by a HW lock. With a KR (8073) interface, unloading the UNDI takes more than 1 sec. Taking the lock by another driver times out after 1 sec then the driver tries also to unload UNDI.
Change: Clear UNDI signature and release the lock. Only the driver who saw UNDI signature will continue to unload UNDI.
Impact: None
24. Problem: Allocate skbs for unused aggregation queues in 57710
Cause: Allocate skbs for 64 aggregation queues but 57710 has only 32
Change: Allocate skbs for max_agg_queues according to chip id
Impact: None
25. Problem: Wrong cleanup on exit from nic_load() in case of a failure
Cause: Upon some failure nic_load() exits without disabling and freeing the interrupts
Change: Fix to disable and free the interrupts in that case
Impact: None
26. Problem: Potential link problem when loading two ports with 8073 PHY
Cause: Initializing the 8073 PHY takes more than 1 seconds and the HW lock might expire since it is only trying for 1 second
Change: Increase the HW lock timeout to 5 seconds
Impact: None
27. Problem: XAUI link on port0 goes down and then up, when the link on port1 is changed
Cause: When master port (port1) is down, it will also cause the blade side down. In turn, PLL will change speed from 10G to 1G. It will cause XAUI clock to both ports down and then up again
Change: Set bit in the BCM8073 that enables the fix
Impact: None
28. Problem: (CQ36772) KR with 8073 PHY sometimes does not establish link
Cause: A missing delay between initializing the PHY SPI ROM and inserting the PHY back to low power mode
Change: Add 15ms delay after loading the SPI PHY ROM which is before entering low power mode
Impact: None
29. Problem: Sometimes when unloading the driver a message will appear: "sp_running (j 1)"
Cause: Wrong condition, the message should appear only if the counter (j) is greater than 1000. This is a false alarm
Change: Fix the print condition
Impact: None
30. Problem: When upgrading 8073 SPI ROM PHY to version 0103 the link will not come up
Cause: Register 0x8370 is no longer required in the new version and writing to it cause the link not to come up
Change: Remove the write to address 0x8370
Impact: None
31. Problem: On some KR boards when loading driver on port0, and port1 is not loaded, sometimes the XAUI link is not coming up
Cause: The 8073 PHY has two ports that share a single clock. This clock is routed to a port deemed to be the master (port 1), and then a PLL at the master sets the clock frequency and routes the buffered clock to both the master XAUI interface as well as the slave (port 0) XAUI interface. If port 0 is loaded while the 8073 PHY SPI ROM is not loaded, the PLL for port 0 is not guaranteed to lock
Change: First driver to be loaded reset and download SPI ROM on both ports of the 8073 PHY during one-time initialization
Impact: The 8073 PHY is only reset when both ports are brought down
32. Problem: On some KR boards when unloading driver on port1 port 0 might loose link
Cause: The 8073 PHY has two ports that share a single clock. This clock is routed to a port deemed to be the master (port 1), and then a PLL at the master sets the clock frequency and routes the buffered clock to both the master XAUI interface as well as the slave (port 0) XAUI interface. If port 1 is unloaded while port 0 is in use, the port 0 PLL might loose lock
Change: Do not reset the PHY if either driver is still up
Impact: The 8073 PHY is only reset when both ports are brought down
33. Problem: When loading driver after it was loaded before, packets are getting into the chip before the MAC addresses are configured (but not into the host)
Cause: The HW filters are not cleared when the driver is unloaded so previous driver configuration is still present
Change: Clear HW filters so no packet will come in when driver is unloaded
Impact: None
34. Problem: Driver does not pass the last version of checkpatch.pl
Cause: Some updates to the script found some coding standard violations in the code
Change: Fixed all reported errors and spelling mistakes
Impact: None
35. Problem: (CQ36492) rx_csum_offload_errors increments for any none TCP/UDP packet
Cause: Parsing CQE flags incorrectly
Change: Parse CQE flags according to CQE status bits
Impact: None
36. Problem: Packets with IP checksum error are dropped
Cause: Dropping packets with IP checksum error
Change: Pass packets with IP checksum error to the stack. Drop only packets with L2 errors
Impact: None
37. Problem: (CQ46480) The nomcp module parameter is causing kernel panic
Cause: This debug parameter was not needed and not maintained
Change: Remove this debug parameter. The driver can detect if the FW is missing and act accordingly
Impact: None
38. Problem: Per function statistics are not cleared on driver load unload
Cause: The FW statistics area was not cleared on driver load
Change: Clear FW statistics area when loading the driver
Cause: Did not apply the right mask on the HW report caused some false positives
Change: Use mask to check only the memory errors report
Impact: None
40. Problem: (CQ36497) Self-test idle_check part is failing
Cause: Did not apply the right mask on the HW report caused some false positives
Change: Use mask to check only the memory errors report
Impact: None
41. Problem: (CQ36514) Failed to load the driver after iSCSI boot on SuSE10 SP2
Cause: The built-in driver from the SuSE10 SP2 (1.42.3) was loaded after the iSCSI-boot
Change: Added update.post file to SuSE10 SP2 dd.iso
Impact: None
42. Problem: (CQ36382) Low 1G UDP performance with one connection with flow control disabled
Cause: The credits in the transmitter HW caused too much gap between UDP packets in case the flow control was disabled
Change: Use the same HW credit as if the flow-control is enabled when the line speed is 2.5G or less
Impact: None
43. Problem: (CQ35662) NVRAM pre-emphasis support does not take effect
Cause: Current nvm values didn't actually affect the phy
Change: To keep backward compatibility, only in case the "Override pre-emphasis configuration" nvm option is enables, it sets the the tx preemphasis and rx equalizer values for the 4 lanes according to the "XGXS backplane Tx pre-emphasis matrix coef." and "XGXS backplane Rx equalizer matrix coef." respectively
Impact: None
44. Problem: Prevent possible glitch due to speed change without link down in the middle
Cause: Currently the NIG goes into drain mode only after link down. If the only the speed was changed from 1G to 100Mb, for example, without link-down indication then the FIFO isn't cleaned and glitch due to clk change may occur
Change: On speed change set the NIG into drain mode
Impact: Several packets may be dropped, but it's ok, since we assume that anyhow several packets were dropped due to the link down
45. Problem: Fix EMAC initialization setting
Change: Currently it is configured inside the enable emac before configuring the EMAC mode. Changed to be after that and should be disabled (with the drain mode setting) at the entrance of the link_update function. In addition, in link down, after putting the nig into drain mode this register should also be disabled.
After configuring the mode and before opening the nig_emac#_en, reset the EMAC_REG_EMAC_RX_MODE and EMAC_REG_EMAC_TX_MODE
Impact: None
Enhancements ------------ 1. Request: Error messages might be displayed in unload
Change: Check work only on the tx fast path and call bnx2x_tx_int() to handle it. Rx work is handled during halt ramrod
Impact: None
2. Request: Indicate that there is no WoL support for functions higher than 1 (only 0 and 1 should support WoL)
Change: As Requested
Impact: None
3. Request: Pause in 57711E mode always advertise both Rx and Tx regardless of frame size
Change: As Requested
Impact: None
4. Request: Skb's marked as CHECKSUM_UNNECESSARY (TPA'ed) were passed to the net stack even if user disabled checksum offloading.
Change: Disable TPA if Rx checksum offloading is disabled.
Impact: There is no way to enabling TPA in kernels older than 2.6.26 except unloading and loading the driver
5. Request: Do not display internal FW version and enhance readability of the bootcode version
Change: As requested
Impact: None
6. Request: Optimize link setup and support 2.5G
Change: Link will be configured on the external PHY before setting up the internal PHY. When needed, only the external PHY will be configured to autoneg. The internal PHY will be set to the obtained speed
Impact: None
7. Request: Skb's marked as CHECKSUM_UNNECESSARY (TPA'ed) were passed to the net stack even if user disabled checksum offloading.
Change: Disable TPA if Rx checksum offloading is disabled.
Impact: None
8. Request: Incorporated latest firmware 4.6.7 - Add support for priority-based ETH TX queues and enable SAFC pausing per queue
Change: As requested
Impact: None
Version 1.46.1 (June 25, 2008) ==============================
Enhancements ------------ 1. Request: Use FW version 4.6.2
Change: As Requested
Impact: None
Version 1.45.6 (June 23, 2008) ==============================
Fixes ----- 1. Problem: (CQ35672, CQ35818) Changing MTU under traffic causes driver hang
Cause: A rare case of LSO packet alignment, relatively to MSS, caused a HW debug checking for end of packet to fail
Change: In computing the end of packet flag, the calculation of the total packet length was modified
Impact: None
2. Problem: Possible memory corruption on kernels with 64K page size
Cause: Inconsistency in using page macros
Change: Use only BCM page macros
Impact: None
Enhancements ------------ 1. Request: Add support for TPA (LRO) setting via ethtool
Change: As Requested
Impact: Kernels after 2.6.26 use this interface to turn off TPA when forwarding enabled due to the limitation of no forwarding (bridging) and TPA together
Version 1.45.5 (June 17, 2008) ==============================
Fixes ----- 1. Problem: (CQ35691) Undefined symbol __udivdi3 when compiled on 32-bit platforms.
Cause: There was 64-bit division
Change: Reordered the arithmetic expression in order to eliminate the 64-bit division
Impact: None.
2. Problem: (CQ35644) Tx mulicast counter does not increment
Cause: start_xmit sets the unicast flag for all packet types
Change: Remove the broadcast and mulicast counters
Impact: None
3. Problem: (CQ35836) Ethtool reports wrong speed when set via CLP
Cause: get_settings returns always the max BW set via CLP without considering the actual link speed
Change: Return the min between the max BW set via CLP and the actual link speed
Impact: None
4. Problem: (CQ35859) Ethtool -S reports many jumbo tx packets with MTU set to 1500
Cause: There is a different in tx histogram statistics between EMAC and BigMAC
Change: Use NIG stats counters instead
Impact: None
5. Problem: (CQ35114) Self test failure on some systems
Cause: pcie_rst_b test can be set and should not be categorized as ERROR
Change: Change pcie_rst_b test priority from ERROR to WARNING
Impact: None
Enhancements ------------ 1. Request: Remove non-coherent stats in 57711E
Change: As Requested
Impact: None
2. Request: Remove xSEM_REG_INT_TABLE from memory test
Change: As Requested
Impact: None
Version 1.45.4 (June 10, 2008) ==============================
Fixes ----- 1. Problem: (CQ34905) load/unload causes link detect failure
Cause: Handling of link events during load wasn't protected
Change: Add synchronization in handling of link events during driver load
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) ==================================
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) ==================================
Cause: vlan_kill_vid() removed in newer versions is needed by older kernels to allow loading.
Change: Re added function.
Impact: None
2. Problem: (CQ #29543) System panicked if receiving UDP data while load and unload
Cause: sp_task work was not synchronized with int_disable_sync()
Change: move sp_task to work_queue element
Impact: None
3. Problem: (CQ #32430) XFP port showed link lights on and link detected = yes when configured port up with no cable attached
Cause: Link_up was declared by local phy (XGXS) link up without the external phy (8705) link status
Change: Link up is now the combination of local phy (XGXS) link up and external phy (8705) link up
Impact: None
Enhancements ------------ 1. Request: Print PCI link properties upon load.
Change: The print was added
Impact: None
Version 0.40.15 (November 15, 2007) ==================================
Fixes ----- 1. Problem: On heavy traffic scenarios, the machine halted due to PCI problem
Cause: A HW change in A1 boards requires some registers that controls the PCI credit to be changed as well
Change: Updating the PXP credit registers
Impact: None
2. Problem: (CQ #31120) The traffic LED was not active for lower speeds
Cause: A new bootcode is required to set the traffic LED when the speed is less then 10G (using the emac and not the bmac)
Change: The set LED routine was updated and bootcode 4.0.10 or above is required to have the LED functional
Impact: None
3. Problem: Found a bug when doing ifconfig down/up during traffic. In this case FW can assert
Cause: A packet that was received before unloading driver stayed in Pbuff, and was processed after loading the driver again
Change: Added the reordering mechanism to slow path handlers
Impact: Implementation of all L2 slow-path commands was modified
4. Problem: (CQ #30160) Removed false positives from the self test (ethtool -t)
Cause: Many tests in the self test were designed to check halted system (after fatal error) and the test assumed that the chip is idle
Change: Any test that can happen while the chip is operational was changed to "info" debug print and is not counted as warning or error
Impact: The self test is more reliable
Enhancements ------------ 1. Request: Forward preparation in the code for 57711
Change: Using only two DMAE clients per port. Using "port" instead of "function".
Impact: Not visible to the user
2. Request: Block RX Pause if Auto-pause was selected and the MTU > 4500 to prevent performance retrogression when using PAUSE with big packets
Change: The auto-pause resolution will be only TX pause if the MTU is larger than 4500. Force pause mode will be obeyed as requested
Impact: Jumbo frames with auto-pause will achieve higher throughput
3. Request: Report HW errors
Change: Parity and blocks errors attentions code was added to the driver. Not all indications are enabled.
Impact: In case of an assert in the chip, the user will get an error notification
4. Request: Added the ability to support multi interrupt queues from kernel 2.6.24 and above
Change: Allow ISR and NAPI (the stack processing) to run on several CPUs. The new feature is disabled by default
Impact: Can reduce latency in some cases
5. Request: Move slow-path to work-queue to allow sleeps
Change: The slow-path is now implemented as work queue
Impact: Better fairness to other host drivers
6. Request: Changes with statistics requirements due to performance enhancement and preparation for next features.
Change: a. Removed rcv_error_bytes b. Replaced errors_discard stat by: mac_discard stat, checksum_discard stat and packet_too_big_discard stat c. Removed statistics histogram
Impact: The displayed statistics format was changed
7. Request Remove FW interrupts that are not needed
Change: FW no longer interrupts the driver for reading a new slow-path element (it updates driver only when completing processing it)
Impact: None
8. Request: Support easier SuSE compilation
Change: In previous version, a flag in bnx2x.c was required in order to compile under SUSE. In the new implementation the make file can be used in the following way: SLES9 command: make EXTRA_CFLAGS+=-DBNX2X_SLES_9 SLES10 command: make EXTRA_CFLAGS+=-DBNX2X_SLES_10
Impact: SLES compilation procedure is different now
Version 0.40.14 (November 06, 2007) ==================================
Enhancements ------------ 1. Naming the TCP performance improvement feature TPA (still for demos only)
Version 0.40.13 (November 05, 2007) ==================================
Enhancements ------------ 1. Added support for L2 Rx TCP performance improvements in a special mode (implementation for demos only). This support is disabled by default and requires a change of compilation flag to enable. 2. Added support for vanilla kernel 2.6.18.5, SLES9, and RHES4
Version 0.40.12 (October 29, 2007) ==================================
Fixes ----- 1. Problem: A fragmented Tcp/Udp packet might have been wrongly dropped
Cause: parser doesn't checks tcp/udp checksum for fragmented packets
Change: FW will report to driver the tcp/udp checksum wasn't Validated if the packet was fragmented
2. Problem: ethtool -S|r|t eth[x] on un-configured port causes errors/panic
Cause: When port is un-configured memory is not allocated and blocks in chip can be in reset
Change: Check driver state in nway_reset() and self_test() and check memory pointer in get_ethtool_stats()
Enhancements ------------ 1. Supporting the upstream Kernel including new NAPI approach 2. Open source coding standard modifications throughout the code, including new init code, new HSI header files, new registers definitions, SPARSE fixes and checkpatch.pl fixes 3. Replaced patches mechanism with #ifdefs 4. Supporting big-endian machines 5. Supporting nVidia chipsets with MCP55 6. Support checksum offload for A1 boards (modification with some flag in PBF command)
Version 0.40.10 (August 27, 2007) =================================
Bug fix version, no new features
Version 4.0.9 (August 10, 2007) ===============================
New features: -------------
1. Updated to firmware version 4.0.7.
2. Added support for ethtool EEPROM options.
Version 4.0.7 (July 23, 2007) =============================
New features: -------------
1. Added support for flow control.
2. Added patch for Kernel 2.6.22.x.
Version 4.0.6 (July 11, 2007) =============================
New features: -------------
1. Added support for new bootcode 4.0.2.
Version 4.0.5 (June 29, 2007) =============================
Fixes: ------
1. Problem: Linux stack rechecked the RX checksum.
Cause: In most cases, the indication of RX checksum was wrong causing the Linux stack to recheck.
Fix: Indication mistake was fixed.
2. Problem: NFS UDP test failed writing to server.
Cause: Incorrect HW init values.
Fix: HW init values were corrected in the driver.
3. Problem: MTU change cause system to assert.
Cause: Memory leak in the ifconfig up/down sequence.
Fix: Memory leak fixed in driver.
Version 4.0.1 (June 15, 2007) =============================
New features: -------------
1. Added Power management is support.
2. Added WoL is support.
3. Auto-negotiation and speed & duplex is supported.
4. Updated firmware version to v4.0.2.
5. Support for Ethtool.
6. Changing MTU can be done when link is up.
Version 0.30.1 (June 4, 2007) ============================
New features: -------------
1. Updated firmware version to v0.30.0.
Version 0.29.1 (May 21, 2007) ============================
New features: -------------
1. Updated firmware version to v0.29.0.
Version 0.27.5 (May 7, 2007) ============================
New features: -------------
1. Interrupt coalescing values have been optimized.
2. Updated to Linux Kernel 2.6.20.7.
Fixes: ------
1. Problem: High performance scenarios involving many threads could have caused tx ring overrun.
Cause: SNP concurrency driver bug.
Fix: Driver related code was fixed.
Version 0.27.1 (Apr 23, 2007) ============================
New features: -------------
1. Added speed and activity support for LEDs.
Fixes: ------
1. Problem: Low performance when running Netperf TCP_RR.
Cause: Driver bug caused a the driver to enter a busy loop in certain cases when there was no RX processing queued.
Fix: The logic used to decide if there is pending RX work was corrected.
2. Problem: XFP link detection problem - intermittent issue.
Cause: Driver would not get link change interrupt.
Fix: Corrected the setting of the link change interrupt. brcm_dd_nic_nx2-2_2_5f-1_710_10_sles11_32-64_chg
Firmware version: 4.6.281.26 (supported on IBM System x, BladeCenter and Flex)
Problems Fixed: - CN4054 VPD is not valid during/after IMM flash - Links go down after 497 to 498 days in VMWare - Send 'link down' to switch if UE occurs on ASIC
Incremental Interoperability: - Emulex Dual Port 10GbE SFP+ VFA IIIr for IBM System x - Emulex Dual Port 10GbE SFP+ Embedded VFA IIIr for IBM System x
Known Issues: - After making changes to any options in the sub-menus under 'controller configuration' in the Emulex UEFI NIC configuration utility and escaping to the prior menu, there is no prompt to save the changes. Be sure to select 'Save' before exiting the configuration menu. Applies to some legacy rack and blade servers.
- Intermittently, when changing the multichannel mode, the system will not auto-reboot after exiting F1 UEFI setup and will continue through POST. Manually reboot the server to ensure all changes are applied. Applies to some legacy rack and blade servers.
- When using a Cisco Nexus 4001i Switch Module, intermittently the 10Gb link may come up as 1Gb link speed. An internal switch port bounce will typically establish a 10Gb link. Setting the switch port speed to fixed 10000 will also allow a guaranteed 10Gb connection. More info available in the Cisco Nexus 4001i Switch Module firmware release notes.
Firmware version: 4.6.281.21 (supported on IBM System x, BladeCenter and Flex)
Problems Fixed: - OCe10 VFA CNAs stuck in "Switch Independent Mode" - Port Identification fails on Port 1 under uEFI menu for PCIe rack VFA
Incremental Interoperability: - IBM Flex System CN4054R 10Gb Virtual Fabric Adapter - IBM Ivy Bridge CPU Based Servers
Known Issues: - After making changes to any options in the sub-menus under 'controller configuration' in the Emulex UEFI NIC configuration utility and escaping to the prior menu, there is no prompt to save the changes. Be sure to select 'Save' before exiting the configuration menu. Applies to some legacy rack and blade servers.
- Intermittently, when changing the multichannel mode, the system will not auto-reboot after exiting F1 UEFI setup and will continue through POST. Manually reboot the server to ensure all changes are applied. Applies to some legacy rack and blade servers.
- When using a Cisco Nexus 4001i Switch Module, intermittently the 10Gb link may come up as 1Gb link speed. An internal switch port bounce will typically establish a 10Gb link. Setting the switch port speed to fixed 10000 will also allow a guaranteed 10Gb connection. More info available in the Cisco Nexus 4001i Switch Module firmware release notes.
Firmware version: 4.6.281.8 (supported on IBM System x, BladeCenter and Flex)
Problems Fixed: - HW iSCSI offload is now supported in UFP Mode (UFP limited to IBM Flex) - Server may hang during boot with multichannel disabled with switch default settings. The IBM 10Gb Virtual Fabric Switch has trunking enabled and the Brocade Converged 10Gbe Switch Module has ports in "Access" mode. If the Brocade Converged 10Gbe Switch Module ports are switched to trunking mode, the hang no longer occurs. - When using Config Patterns with virtual MACs the bandwidth settings are are intermittently reset after some number of server reboots.
Incremental Interoperability: - IBM Flex System Fabric SI4093 System Interconnect Module - IBM Flex System EN6131 40Gb Ethernet Switch - IBM Flex System x222 10Gb Virtual Fabric LOM - SLES 11.3 on IBM System x and BladeCenter - Complete NIC/iSCSI/FCoE support for ASU/Config Patterns for Flex and ASU for IBM System x & BladeCenter
Known Issues: - After making changes to any options in the sub-menus under 'controller configuration' in the Emulex UEFI NIC configuration utility and escaping to the prior menu, there is no prompt to save the changes. Be sure to select 'Save' before exiting the configuration menu. Applies to some legacy rack and blade servers.
- Intermittently, when changing the multichannel mode, the system will not auto-reboot after exiting F1 UEFI setup and will continue through POST. Manually reboot the server to ensure all changes are applied. Applies to some legacy rack and blade servers.
- When using a Cisco Nexus 4001i Switch Module, intermittently the 10Gb link may come up as 1Gb link speed. An internal switch port bounce will typically establish a 10Gb link. Setting the switch port speed to fixed 10000 will also allow a guaranteed 10Gb connection. More info available in the Cisco Nexus 4001i Switch Module firmware release notes.
Firmware version: 4.6.166.9 (supported on IBM System x & BladeCenter)
Problems Fixed: - When connected to Cisco Nexus 4k and 5k switches, the virtual link may not recover on a switch port bounce (shut/no shut) in an ESXi environment. A switch port re-bounce will recover the link.
- When connected to Cisco Nexus 4k and 5k switches, OneCommand Manager reports CRC's and there is poor network performance in an ESXi environment
- In some cases of heavy traffic or broadcast storm, users can experience a loss of ethernet connectivity or PSOD (ESXi)
Incremental Interoperability: - ASU/Config Pattern configuration for iSCSI and FCoE (BE3) - UFP for iSCSI (BE3) - Support for using 10Gb ports with legacy 1Gb switches installed in a BladeCenter-S chassis or MSIM/MSIM-T expansion units in a BladeCenter-H or -HT chassis - Update Express System Packs now support Linux errata kernels - ESXi 5.1
Known Issues: - After making changes to any options in the sub-menus under 'controller configuration' in the Emulex UEFI NIC configuration utility and escaping to the prior menu, there is no prompt to save the changes. Be sure to select 'Save' before exiting the configuration menu. Applies to some legacy rack and blade servers.
- Intermittently, when changing the multichannel mode, the system will not auto-reboot after exiting F1 UEFI setup and will continue through POST. Manually reboot the server to ensure all changes are applied. Applies to some legacy rack and blade servers.
- Server may hang during boot with multichannel disabled with switch default settings. The IBM 10Gb Virtual Fabric Switch has trunking enabled and the Brocade Converged 10Gbe Switch Module has ports in "Access" mode. If the Brocade Converged 10Gbe Switch Module ports are switched to trunking mode, the hang no longer occurs.
- When using a Cisco Nexus 4001i Switch Module, intermittently the 10Gb link may come up as 1Gb link speed. An internal switch port bounce will typically establish a 10Gb link. Setting the switch port speed to fixed 10000 will also allow a guaranteed 10Gb connection. More info available in the Cisco Nexus 4001i Switch Module firmware release notes.
Firmware Version: 4.4.180.3 (Previously supported on IBM Flex)
Problems Fixed:
- 10Gb ports intermittenly linking at 1Gb speed with the IBM Flex System Fabric EN4093/EN4093R 10Gb Scalable Switch. - Switch Configuration after an erase configuration is not reflected after reboot - 'Logical Admin Link' not enabled after applying BOFM in Switch Agnostic mode - IBM pre-boot Diagnostics NIC physical loopback test fails in Command and GUI mode - Multiple cosmetic issues with iSCSI UEFI BIOS - 10Gb ports do not detect 'Link Down' with some switches - When adding an iSCSI hardware target in UEFI through discovery login, the boot target setting is ignored.
Interoperability since previous release:
- UEFI 2.3.1 Compliance - Increased VF count in SR-IOV (was 16 VFs per port, is now 32 VFs per port) - Support for next generation 10GbaseT PHY - Expose IBM Feature On Demand licensing information in UEFI configuration utility - IBM Universal Configuration Manager for Ethernet - IBM Unified Fabric Protocol - Ability to assign Switch Agnostic VLAN IDs without intermediate reboot - Changes to Personality or Multichannel in PXESelect allows further changes to be made w/o reboot - Support for IBM Flex System Fabric CN4093 10Gb Converged Scalable Switch
Known Issues:
- HW iSCSI offload is not currently supported in UFP mode
Firmware Version: 4.1.422.8 (Previously supported on IBM Flex)
Problems Fixed:
- PHY Loopback fails on 10G ports - RH 6.2 and W2k8 servers crashed after shut/no shut the switch port with FCoE connection and 50 vlans configured - DSA: NIC physical loopback test fails in Command and GUI mode - Firmware update fails to update all VPD Code Level fields - DCBX does not converge with FW 4.1.422 on Cicso 5k.
Interoperability Since Previous Release:
- Support for IBM Flex System x440 10Gb Virtual Fabric LOM
Firmware Version: 4.1.422.0 (Previously supported on IBM Flex)
Problems Fixed:
- SR IOV: Unable to ping IPV6 from DUT VF to Peer VF - Reading VPD from BE3 timesout making SR IOV fail in newer kernels - 1Gb devices are being suppressed by kernel during the PCI probe in SLES11 SP2 - MAC Loopback fails when Mgmt Adapter Creation fails - Failure of MAC loopback test after firmware update and warm reboot - Suppress efat dump mailbox commands in the efat dump log - Running ethtool with BE3 takes longer than expected after cable pull - Out of Order CQEs - TRACE_LOG function not printing the messages for some of the VF's - esx4/5 issue. svc target cannot be configured properly - RSCN is not generated by switch when a driver restarts - Port Link stays up even after switch removed
Interoperability Since Previous Release:
- Support for IBM Flex System EN4054 4-port 10Gb Ethernet Adapter - Support for IBM Flex System CN4054 10Gb Virtual Fabric Adapter - Support for IBM Flex System x240 10Gb Virtual Fabric LOM - Support for IBM Flex System Manager 10Gb Virtual Fabric LOM
Firmware Version: 4.2.433.3 (Previously supported on IBM SystemX & BladeCenter)
Problems Fixed:
- Intermittent link status with IBM Virtual Fabric Switch when set to IBM Virtual Fabric Mode - The option to enable/disable SRIOV on HS23 LOM Port 0 is missing from OneCommand Manager. This selection is available in UEFI F1 setup. - Under high network stress, NMI errors can be seen with x3690 X5 and x3850 X5 - 10GbE ports running at 1GbE speed 10% below wirespeed at certain block sizes. - Unable to perform PXE boot with LPVID assigned to vNIC interface - 1Gb ports of HS23 do not handle tagging properly if multichannel mode enabled (pnic ok). Note: ESX driver patch also required. - Port flapping link after FW upgrade and "reboot" when connected to 10Gb PTM module (DAC)
Interoperability Since Previous Release:
- Support for Emulex Virtual Fabric Adapter Advanced (BE2) for IBM BladeCenter - Support for Emulex Virtual Fabric Adapter (BE2) for IBM BladeCenter - Support for Emulex Virtual Fabric Adapter (BE2) for IBM System X
Known Issues:
- All 10Gb KX4 ports must be used with 10Gb switches. They will not link at 1Gb. This applies to HS23 LOM and IBM BladeCenter VFA adapters only. - IPv6 IP address not visible via IMM GUI for IBM Option 90Y6456
Firmware Version: 4.2.412.0 (Previously supported on IBM SystemX & BladeCenter)
Problems Fixed:
- All VFS on Port 1 on optional Card unreachable from outside the host (x3750 M4) - 'Logical Admin Link' not enabled after applying BOFM in Switch Agnostic mode - IBM pre-boot Diagnostics NIC physical loopback test fails in Command and GUI mode - Multiple cosmetic issues with iSCSI UEFI BIOS - 10Gb ports do not detect 'Link Down' with some switches - 1Gb ports on HS23 LOM not able link up with IBM ICPM (FRU part 44W4486) in BCS chassis - Performance issues with specific DAC cables and SND top of rack switch
Interoperability Since Previous Release:
- UEFI 2.3.1 Compliance - Increased VF count in SR-IOV (was 16 VFs per port, is now 32 VFs per port) - Support for next generation 10GbaseT PHY - Expose IBM Feature On Demand licensing information in UEFI configuration utility
Known Issues:
- All 10Gb ports must be used with 10Gb switches. They will not link at 1Gb. - IPv6 IP address not visible via IMM GUI for IBM Option 90Y6456 - Intermittent link status with IBM Virtual Fabric Switch when set to IBM Virtual Fabric Mode - The option to enable/disable SRIOV on HS23 LOM Port 0 is missing from OneCommand Manager. This selection is available in UEFI F1 setup.
Firmware Version: 4.1.455.6 (Previously supported on IBM SystemX & BladeCenter)
Problems Fixed:
- Fixed an issue where ASIC randomly hangs losing network connectivity when certain commands are sent from the host. Resulting behavior varies between OS's (Yellow bangs in Windows, PSOD in VMWare) - PHY Loopback fails on 10G ports - UE and hang on LOM or Robalo when powering off Janice in UEFI or PXESelect - Loopback on HS23 now functional in DSAp - DCBX does not converge with firmware on a FCoE fabric - Control C Broken on BE2 - 7 second delay in GET_CARD_ATTRIBUTES command - Emulex VF adapter FCoE link lost on VMware 5.0 - flow control set for 10G Base T phys for autonegotiation - Dynamic link update is not working with NIC UEFI driver - Remove unused definitions in UEFI NIC - Emulex driver expects that the Login Options field be zero - "map r" displays a iSCSI BLK device when no LUNs presented - "X/x Exit without save" does not work as expected - Display proper description as part of EFI Driver Model Related Information - Intermittent "Configuration changed. reset to apply it now?" - Garbled output being displayed at the LUN configuration section. - All Emulex Configuration settings get lost after a reset - Perform additional checks when no Luns are mapped to the target - CHAP name only accepts 6 to 10 characters - Hii ???iSCSI Initiator Configuration??? showing old version screen - iSCSI name is case sensitive - iSCSI HII allows user to select first 8 LUNs as bootable. - iSCSI Boot Enable/Disable option should be port specific - LUN Configuration shows LUN 0, even if no LUNs presented to initiator.
Interoperability Since Previous Release:
- Support for Emulex Virtual Fabric Adapter Advanced (CFFh, 2+2) for IBM BladeCenter
Firmware Version: 4.1.334.47 (Previously supported on IBM SystemX & BladeCenter)
Problems Fixed:
- NCSI transmit workaround for IBM - Issues with data reporting when BOFM enabled - Improved network performance throughput - Issues with IBM Management network performance - Logical link status for IBM mezz card shown as 'N/A' - Serial Over LAN fails when more than one blade installed with a single switch - Removed UEFI menu items for unsupported functions on a port - Issues with diagnositics in virtual NIC/UMC mode - Issues with MAC and PHY loopback on OneConnect devices - Several issues with FCoE on some OEM fabric switches
Interoperability Since Previous Release:
- Support for HS23 Virtual Fabric LAN on Motherboard - Support for VFA III (95Y3762, 95Y3768), 90Y6456 - Support for IBM's Features on Demand (FOD) - Formal support for SR-IOV
Firmware Version: 4.0.1062.0 (Previously supported on IBM SystemX & BladeCenter)
Problems Fixed:
- iLab Tucson - lpfc Device Resets and path failures continue after error inject. - Writes do not complete when running LIP test on BE3 port 2 - IPV6 implementations no longer experience an unrecognized routing type error. - VLAN tagging is now disabled on the OneConnect UCNA when multichannel is disabled. - UEFI/BIOS-assigned LPVIDs now function properly on the OneConnect 10102-based UCNA. - OneConnect UCNAs no longer send and receive only double-tagged packets and discard all other packets. - PHY, MAC, and External loopback tests no longer fail on all platforms. - Firmware now returns the proper OneConnect UCNA model number. - IPV6 implementations no longer experience an unrecognized routing type error. - Installing Windows 2008 or Windows 2008 R2 on remote iSCSI disks no longer causes the system to hang. - Issues no longer occur when resetting a server configured for multipathing on VMware ESX systems. - VLAN tagging is now disabled on the OneConnect UCNA when multichannel is disabled. - UEFI/BIOS-assigned LPVIDs now function properly on the OneConnect 10102-based UCNA. - OneConnect UCNAs no longer send and receive only double-tagged packets and discard all other packets. - An adapter hardware error no longer occurs when running I/O with LUNs on x86 platforms. - Changing from Convergence Enhanced Ethernet (CEE) to Chassis Internal Network (CIN) and then rebooting no longer fails to link-flap (CIN Fabric Login (FLOGI) now occurs). - PHY, MAC, and External loopback tests no longer fail on all platforms. - Firmware now returns the proper OneConnect UCNA model number. - DCB settings can now be configured. - (iSCSISelect) When enabling DHCP for an iSCSI initiator, the Emulex iSCSI Network Configuration utility now waits approximately 20 seconds to make a DHCP connection before returning control. - (FCoE BootBIOS) FCF CEE parameters for Boot from SAN configuration are now saved properly.
Interoperability Since Previous Release:
- Added support for switch-independent multichannel mode. - Added support for IBM Virtual Fabric 10Gb RackSwitch firmware 6.8.1.0. - Added support for IBM Virtual Fabric 10G Switch Module firmware 6.8.1.0. - Added support for Fibre Channel over Ethernet (FCoE) on rack systems. - Added support for iSCSI hardware offload on rack systems. - Added support for Cisco Nexus 5000-series switches.
=============================================== Change History =============================================== Document Name: Change History Document Status: IBM General Avalibility Document Version: 3.2.4 Latest Driver Version: 3.2.4.0 Document Updated: 11/11/2013 Product: Brocade FC/NIC/CNA
=================================================
Please visit www.brocade.com/hba for full documentation, additional drivers, and management applications.
Version 3.2.4.0 New Features and Feature Enhancement: - Support for RHEL5.10 and RHEL6.5
Version 3.2.3.0 New Features and Feature Enhancement: - Support for patching firmware via boot image - Support for Linux PTP - Support for UEFI Health Check Protocol - Support for SLES11SP3
Version 3.2.1.0 New Features and Feature Enhancement: - Support for "IBM Flex System FC5024D 4-port 16Gb FC Adapter" PART_NUMBER "95Y2381" - Support for RHEL5.9 and RHEL6.4
Fixes and Enhancements: - Enhanced Linux driver data path to properly handle IPv6 packets. - Enhanced Linux driver to make sure user configured path tov value is persistent and is not changed due to change in dev_loss_tmo.
Version 3.2.0.0 Release for FC/NIC/CNA
New Features and Feature Enhancement: - Updated code for Brocade 1867 IBM Flex System FC5022 FC Adapter for x22 - BB Credit Recovery - Forward Error Correction (FEC) - Diagnostic Port (D-Port) - LUN Level IO Latency/Stats - UCM (Unified Configuration Manager) - Windows Network Performance and scalability enhancement
Fixes or enhancements: - For Brocade 8x5/4x5, I/O interrupt latency values are dynamically updated. Changes are effective for all the ports on the given adapter. - Addressed infrequent PSOD in VMware ESX with iSCSI or VLAN configured traffic in DCB enabled network. - Enhanced BR1860 Tape IO performance. - Improved BR1860 initialization on Xen kernel.
Version 3.1.0.1 Release for 16G FC/NIC/CNA
Adapter Features - Updated code for Brocade 1867 IBM 16G Mezzanine Fabric Adapter.
HBA - Fibre Channel 16G Support
Fixes and Enhancements: N/A
Version 3.0.3.1 Initial release for 16G FC/NIC/CNA
Adapter Features - Initial support for Brocade 1867 IBM 16G Mezzanine Fabric Adapter.
HBA - Fibre Channel 16G Support
Fixes and Enhancements: N/A brcd_fw_cna_3_2_4_0_linux_32-64_chg
=============================================================================== Emulex 16GB FC Firmware Package ===============================================================================
Firmware Version: 1.1.43.3 (Release for IBM System x)
Incremental Interoperability: - VPD-W for Lancer
Problems Fixed: - Emulex FC Adapter does not auto-enable SAN boot mode when boot target configuration is made via IFM
Firmware Version: 1.1.21.9 (Previous release for IBM Rack)
Incremental Interoperability: - IBM Server machine types. Refer to IBM ServerProven for specifics
Problems Fixed: - Fixed FCP_CONF handling bug - No SRR sent after drop write data frame, I/O fails - Adapter does not invoke recovery after dropped read data frame - I/O throughput performance improvements - Link failover when connected to FC Tape - Cosmetic: Cleaned up miscellaneous error handling messages in debug log files - If a new device comes online and attempts to acquire an AL_PA after the link has already come up, the FC link appears to hang until the cable is pulled - Cleaned up link negotiation at 4GB/8GB/16GB speeds with specific switches
**************************************************************** | | | | | IBM Online Tape Drive Update Program | | Revision: 1.10.01.1073 Build Date: 3.3.10 | | | | (C) Copyright International Business Machines Corporation | | 2000-2010 . All rights reserved. | | | | US Government Users Restricted Rights -- Use, duplication | | or disclosure restricted by GSA ADP Schedule Contract with | | IBM Corp. | | | | Note: Before using this information and the product it | | supports, read the general information under "NOTICES AND | | TRADEMARKS" in this document. | | | | Updated: 1/28/2013 | | | ****************************************************************
CONTENTS:
Change History
ver 1.6
To release FW v0195. The change from v0185 is to refine the code and no function change for system x.
ver 1.5
Update to fix the failure in FW updating with cartridge inserted in the drive (from v0145 up to v0185). The way to make drive FW update in the VMware environments is added in the readme.
ver 1.4
Initial release of the Tandberg Data RDX USB 3 backup drives. This FW update cover the drives of the IBM P/N 362532Y, 362550Y, 36251TY, 00D2786,00D2787 and 00D2788.
ver 1.1
Updated drive string to include: Imation RDX-USB (in addition to IBM RDX) Updated 'tapedrv' to version 1.10.01.1073 Updated to include more systems
ver 1.0
This firmware will change the firmware of your RD drive to the latest available, unless it is already at the latest level.
This is the initial release of the RD package file, so there are no changes to describe. ibm_fw_tape_rd-1_6_linux_32-64_chg
ServeRAID M5100 Series SAS/SATA Controller Firmware Update for Linux
Adapters Supported: ServeRAID M5110 SAS/SATA Controller for IBM System x (81Y4481) ServeRAID M5110e SAS/SATA Controller for IBM System x ServeRAID M5120 SAS/SATA Controller for IBM System x (81Y4478)
NOTE TO SERVICE - Reference RETAIN #N/A
Version 23.22.0-0024 - Non-Critical ------------------- Enhancement(s): - Display the Native Command Queuing (NCQ) enabled/disabled status of every SATA disk drive in the output of StorCLI and MegaCLI. - Added support for ServeRAID M5100 Series 2GB Flash/RAID 5. Fix(es): - Disable PI CRC checking when the drive is not initialized during a CC. - Increased the SuperCap learn time out value for 2GB TMM-B solution. - Fixed an issue for 2GB memory modules where SuperCap does not get connected to the controller and hence cache offload fails. - Fixed an issue where cache policy of virtual drives(VD) does not change to write through(WT) mode even after detecting a bad supercap. - Fixed an issue where a RAID configuration created with physical disks in powersave mode could be lost after rebooting the system. - Fixed an issue where an invalid frame sent during a PIO-mode SATA passthrough command results in resetting the drive. - Fixed an issue where the system is not allocating memory correctly when MR and iMR controllers are in the same system. - Fixed an issue where deep learn does not start immediately when the relative state of charge (RSOC) is just equal to 95%. - Fixed an issue where performing a re-key operation in external key management (EKM) mode without doing a reboot, and then switching to local key management Mode(LKM) results in the Firmware logs showing that a drive security key was created but HII says the key is incorrect. - Fixed an issue where on a local key management (LKM) enabled controller, the user is asked to enter the security key to unlock and import a foreign drive, which is locked and has external key management (EKM) enabled.
Version 23.16.0-0027 - Critical ------------------- Fix(es): - Addressed data exposure issue when using CacheCade - Fixed issue where Supercap shows 0 Capacitance - Fixed iBBU09 battery issue that caused a VD cache policy to remain in write-through mode after a manual relearn - Fixed iBBU09 battery issue that caused a VD cache policy to periodically toggle between write-back/write-through mode - The limits for iBBU09 battery charging were not updating properly in a learn cycle - Ensures a single supercap pack is not supported on 2GB memory module. - Resolves a firmware crash seen while doing continuous sas cable pulls. - Ensures OpROM loads even if segment address is 0xC0000. - Fixed an issue where the adapter is running iMR machine checking after requesting host memory. - Fixed an issue where HII does not allow the user to make use of the remaining free capacity to configure additional VD for R50/R10. - Fixed an issue where an HII: empty warning prompt is given when creating a CacheCade VD with forced writeback option. - Fixed and issue where Windows cannot install without a VGA device on board. - Fixed and issue in EFI WebBIOS were consistency check is still shown in progress after 1 PD is removed from a R1 array.
Version 23.16.0-0018 - Suggested ------------------- Fix(es): - Fixed an issue where the adapter is running iMR machine checking after requesting host memory. - Fixed an issue where HII does not allow the user to make use of the remaining free capacity to configure additional VD for R50/R10. - Fixed an issue where an HII: empty warning prompt is given when creating a CacheCade VD with forced writeback option. - Fixed and issue where Windows cannot install without a VGA device on board. - Fixed and issue in EFI WebBIOS were consistency check is still shown in progress after 1 PD is removed from a R1 array.
Version 23.12.0-0016 - Suggested ------------------- Fix(es): - Added isync to prevent speculative execution while memory is being allocated. - Delayed enablement of POM until AFTER valid memory range is provided by host system.
Version 23.12.0-0011 - Suggested ------------------- Enhancement(s): - Implemented Limited Band Charging for iBBU09 (RETAIN tip H21631) - Changed BIOS check to determine if running in HAMR, in order to ensure nothing gets broken when user has an iButton which is not programmed. - Changed controller status for safe mode to show controller status as safe mode and disable debug message logging in serial port.
Fix(es): - Addressed an issue where deeply discharged Cache Vault Power Modules would be prematurely be marked as failed. - Fixed an issue where HII hangs when trying to enter configuration management while in safe mode. Changed the safe mode warning message as below: "Controller is running in safe mode. Safe mode is used for diagnostic purposes only. Limited operations such as Configuration Preview, Clear Configuration and View/Change Controller Properties are allowed in this mode. Other operations such as Create Configuration, Import and Clear Foreign Configurations are not allowed. To exit safe mode, correct the fault, and reboot your computer." - Fixed an issue where having more than three adapters results in a calculation error for the offset to store physical disk info for fourth adapter, due to BIOS not clearing upper byte of AX (that is AH which is containing some non zero value). - Fixed an issue where the Wrong spanned drive group size is displayed by WebBIOS (Ctrl-H).
Version 23.7.1-0010 - Suggested ------------------- Fixes: - Fix an issue related to the where the TSOC (EEPROM) is not able to read or write from the firmware which will result in the message "Incompatible secondary iButton present." - Fix a HII broswer issue where Cachecade virtual drive can be selected as a boot device. - Fix a HII broswer issue where the user is unable to clear the controller configuration when there are no drives attached. - Fix an issue where the BIOS doesn't display the RAID level and VD size correctly at BIOS POST.
Version 23.7.1-0009 - Suggested ------------------- Fixes: - Fixed an issue where SoH is bad after a learn cycle but iBBUI shows good status. - Fixed an issue where hi-temp warning was not being displayed.
Version 23.7.0-0037 - Suggested ------------------- Fixes: - Corrected differential signals for Phys 2 and 3 that caused slot numbers in simple swap configurations to be incorrect. - Fixed an issue when 'maintain PD failed history' is enabled, and a cable is removed while a drive is added, the drives state goes to optimal instead of foreign unconfigured bad. - Fixed a problem where a capacity change is reported after a rebuild completes on a Cache Cade volume. - Fixed a controller firmware hang when the recovery of a medium error takes to long. - Fixed an issue where the SATA BBM (Bad Block Manager) list was being corrupted. - Fixed an issue where FoD (Feature on Demand) Options were being lost because of errors while accessing the TSOC. - Fixed a problem where the controller firmware would crash and drives would go offline when a bad block entry was created during a check consistency operation. - Fixed a problem where drives were being marked unconfigured bad (foreign) on reboot. - Fixed problem where a member of a CacheCade volume did not get marked as foreign when the drive was pulled with 'maintain PD failed history' enabled. - Fixed a problem where during a rebuild, a former hot spare that was now in a state of unconfigured good, moved back to the state hot spare, which then automatically started a copyback operation, causing the rebuild to restart. - Fixed a problem where a controller fault occurred during a reboot while a physical device was in progress of a PD Erase.
Version 23.7.0-0029 - Suggested ------------------- Enhancements: - Added support for Cache Cade 2.1 - Added Support for PI Drives
Fixes: - Fixed an issue where the firmware reports device initialization completion status to be greater than 100% at startup. - Fix an issue where when a secure foreign drive was present, VD creation fails because firmware becomes unresponsive - Added a check for the presence of PD before writing the data arms of a protected LD during BGI. - Fixed Firmware asserts in CacheMemAllocForPrebootApps() when memory was allocated twice by BIOS. - Fixed an issue with USB Cacheoffload restore fails after multiple power cycles onServeRAID M51xx controllers. - Fixed an issue where querying SMART / PFA Status returns "all zeros" in Sense Data. - Fixed an issue where the import of a config from MR to iMR resulted in a firmware crash. - Fixed an issue where iMR firmware crashed while creating 8/16/32 KB stripe size Lds. - Fixed background initialization watermark conversion to PD LBA. - Fixed write protected R1E data arms during initialization. - Fixed an issue where MR firmware crashed while discarding pinned cache. - Fixed an issue where a dirty LD dependency information of SSD pd has stale entries. - Corrected an issue during system booting from pinned cache, firmware goes to loop message BootMsgDcmd - Fixed an issue where a BGI was aborted and restarted, elapsed time was not reset. - Fixed an issue where the start ref for a shared cache line was not an indicator of the offset into the stripe. - Fixed an issue where the firmware hangs while running CC on a rebuilt R1 VD with SBBM. - Fixed an issue where the firmware was wrongly adding puncture entries. - Fixed an issue where rebuild was ran twice on a target drive with 100% full SBBM table. - Fixed an issue where the firmware was generating powersave change event when DS3 was not enabled, due to this application are not parsing the event. - Fixed an issue where recon from R0 to R1 using 3 TB drive causes firmware to report excessive unexpected sense events. - Fixed an issue, in which the bbuMode would revert to the factory default value of 5, when automatic learn cycle was enabled. - Fixed an issue where cache offload firmware reports unnecessary High Temp Event due to incorrect temp value. - Fixed an issue in which a Patrol Read may not start under certain conditions. - Fixed an issue where the firmware hits montask after discarding the cache when a snapshot VD was involved. - Fixed an issue where the firmware hangs during pin cache destage as dirty lines in that map never become zero. - Fixed an issue where CC fails to correct media error at 2TB location on 2 3TB SATA drives that support WU. - Fixed an issue where a new XML file was added to the nvdata, the buffer to hold the uncompressed nvdata overflowed. - Fixed an issue where an imported drive becomes unconfigured good when secure VD erase was running. - Fixed an issue where CC stops progressing on a R6 VD with media errors. - Fixed an issue where 3TB Hitachi HDD failed in immunity test (Electrostatic Noise test). - Fixed an issue where controller features are lost if RAID Key was not detected. - Fixed an issue where performance degraded in RAID 5 Sequential Writes due to command Out-of Ordering. - Fixed an issue where "Native configuration is no longer supported" message in post. - Fixed an issue where (DDR3) Initialization fails with fault 0x91a1 - initial DFIRL selected too low. - Fixed an issue where subsequent drives are dropped when all drives in the stagger spin up drives fails on boot sequence.
Version 23.2.1-0043 - Suggested ------------------- Fixes: - Fixed an issue where "Potential non-optimal configuration due to drive PD commissioned as emergency spare" alarm would trigger erroneously. - Fixed an issue where Copyback does not progress upon inserting drives. - Fixed an issue When allowMixInLD is Disabled, and causes Copyback Fails after Rebuild to Emergency Hot Spare. - Fixed an issue where the Firmware faults while flashing. - Fixed an issure where querying SMART / PFA Status to Return all zeros in Sense Data. - Fixed an issue where the Re-inserted Drives becomes Unconfigured_good causing auto rebuilds to fail to start.
Version 23.2.1-0033 ------------------- - Initial release ibm_fw_sraidmr_5100-23_22_0-0024_linux_32-64_chg
Adapters Supported: ServeRAID M5210e SAS/SATA Controller for IBM System x ServeRAID M5210 SAS/SATA Controller
NOTE TO SERVICE - Reference RETAIN #N/A
Version 24.2.1-0027 - Non-Critical ------------------- Enhancment(s): - Add event in FW to indicate that an INIT operation was halted due to reboot or other failure Fixes: - Increase backplane support to 32 slots. - Enable 512E support. - Fixed an issue where system is not allocating memory correctly when MR and iMR are in the same configuration - Fixed an issue where the user is Unable to create a RAID10 through Ctrl R using 4k drives. - Fixed an issue where on a local key management (LKM) enabled controller, the user is asked to enter the security key to unlock and import a foreign drive, which is locked and has external key management (EKM) enabled. - Fixed an issue where switching between external key management (EKM) and Local Key Management (LKM) without rebooting results in the current secret key string becoming invalid/null. - Fixed an issue where cache memory size is listed as zero in controller Information. - Fixed an issue where re-keying a controller with External key management (EKM) enabled and rebooting the system results in a corrupted key ID and an error message "Unable to communicate with EKMS ..." is displayed. - Fixed an issue where performing an online firmware update or online controller reset (OCR) on a controller with External key management (EKM) enabled, results in all secured drives marked as foreign. - Fixed an issue where CacheCade volumes, which are not supported, could be created using 4K SSD's. - Fixed an issue where removing the last physical drive of arrays could result in a firmware fault. - Fixed an issue where MegaRAID Storage Manager does not show an option to create virtual drives when the first drive in the array is missing in a partial virtual drive where all drives are configured. - Fixed an issue where switching the security mode from external key management (EKM) to local key management (LKM) on iMR controller will result in a corrupted controller key. - Fixed an issue where performing a re-key operation in external key management (EKM) mode without doing a reboot, and then switching to local key management Mode(LKM) results in the Firmware logs showing that a drive security key was created but HII says the key is incorrect.
Version 24.0.2-0013 ------------------- -Initial release ibm_fw_sraidmr_5210-24_2_1-0027_linux_32-64_chg
2.4.1z1-test build.
This build is based on latest Gold Cds. 16.4.4.4 NX1 and T7.10.4.1 NX2 CDs.
See both NX1 and NX2 release texts below for detailed information.
1- 16.4.4.4 NextXtreme I =========================
Summary ======= - Gold Release Update for the Broadcom 16.4 project.
Caveats ======= - tg3 final pass testing is not complete yet. Estimated completion is March 10, 2014. - The AIM was not tested in EFI due to no available tool. 70995 - Agentless Upgrade for Mustang and Kestrel LOM support is included in this release but that functionality is untested by PQA. For Mustang adapter this new UEFI requires IMFW 1.08 release to be present to operate correctly
Highlights ========== 71959 - Agentless Phase 1 support for Mustang mezz and Kestrel LOM. 54220 - 5719 Silent Data Corruption Errata for 5719 addressed completely for VMware. 72462 - Potential Windows bugcheck due to BASP spinlock deadlock. 71966 – IBM customer PMR 87165,070,724 - NIC link down on AngelShark with W2K8R2. 68994 - Remote KVM lost connection while running the power cycle stress tested on IBM JinHu system 70795 - XB191768 - IMM VLAN function can work on early post time and OS.
Operating System coverage: ========================== Windows 2008 R2 Windows 2012 Windows 2012 R2 RHEL 5.10 RHEL 5.9 RHEL 6.4 SUSE 10.4 SUSE 11.2 SUSE 11.3 Solaris 10 (U11) Solaris 11 (U1) VMware ESX 5.0/5.1 (IOVP submitted) VMware ESX 5.5 Citrix XenServer 6.1.0 Citrix XenServer 6.2.0
Contents of the CD ================== **** Release Version Information Table ****
Product Version Previous Release
Win Srv 2008/12 x64 16.4.0.2a* << 16.4.0.1a* Win Srv 2008/12 x86 16.4.0.2a* << 16.4.0.1a* BASP Windows 2008/12 ia32 1.6.14* 1.6.14* BASP Windows 2008/12 x64 1.6.14* 1.6.14* Dos Ndis2 NX1 16.2.0 16.2.0 EFI Undi 16.4.10* << 16.4.7 iSCSI Boot 7.10.3 << 7.8.75 Linux Tg3 3.136e << 3.134f PXE NX1 16.4.3 << 16.4.1 Solaris NX1 (bge) 16.2.2 16.2.2 ASF 2.0 Firmware 8.17 8.17 Bootcode for 5714 3.30 3.30 Bootcode for 5714s 3.30 3.30 Bootcode for 5715 3.30 3.30 Bootcode for 5715s 3.30 3.30 Bootcode for 5717 1.59 1.59 Bootcode for 5717C0 2.04 2.04 Bootcode for 5718 1.59 1.59 Bootcode for 5719 1.37 1.37 Bootcode for 5720 1.33 1.33 NCSI Firmware NX1 1.2.42 1.2.42 IPMI Firmware for 5704c 2.50 2.50 IPMI Firmware for 5714,5715,5780 6.24 6.24 IPMI Firmware for 5721 6.25 6.25 IPMI Firmware for 5722 6.03 6.03 UMP Firmware 5714,5715,5780 1.2.2 1.2.2 APE Firmware (imfw) 1.07 1.07 ASF IPMon Linux 7.1.4 7.1.4 BACS 16.4.3 << 16.3.6 BACS Command Line Interface 16.4.3 << 16.3.6 BACS for Linux 16.4.3 << 16.3.6 BMAPI 7.30.20 << 7.30.18 CABW32 6.2.1 6.2.1 Check Firmware 1.29 1.29 CIM for Windows 16.0.16 << 16.0.12 CCM 7.10.5 << 7.8.21 CMPI provider for Windows 2.4.4 2.4.4 CMPI provider for Linux 2.5.11 << 2.5.3 CMPI provider for Linux (ppc) 2.4.3 2.4.3 CMPI provider for VMWare 2.5.11 << 2.5.2 Dos Diagnostic NX1 16.4.12 << 16.4.03 EFI Diagnostic 16.4.12 << 16.4.03 Firmware Upgrade Linux NX1 2.6.5 << 2.6.4 Firmware Upgrade Linux NX1 (ppc) 2.5.1 2.5.1 Firmware Upgrade Windows NX1 7.6.7 << 7.6.4 Linux Bmapi 6.23.6 << 6.23.5 Linux Diagnostic NX1 16.4.04 << 16.4.02 PC Doctor 15.33f 15.33f SNMP-Basp 7.1.7 7.1.7 SNMP-Extensible-Agent 7.1.7 7.1.7 Windows Unattended Install 1.09 1.09 570x Driver Installer 16.4.4.1 << 16.4.3.1 BACS Installer 32/64 bit 16.4.9.2 << 16.4.9.1 HTML User Guide INGSRV164-CDUM101-R INGSRV164-CDUM101-R
Note: An asterisk (*) following a version number represents a certified driver. Arrows (<<) between versions indicate the component has been updated from the previous released software kit.
Third-party trademarks and copyrights are the property of their respective owners.
Broadcom, Broadcom Advanced Server Program, Broadcom Advanced Server Control Suite, and Smart Load Balance are registered trademarks of Broadcom Corporation.
Summary ======= - Gold Release for the Broadcom T7.10 project.
Highlights ========== - CQ72462 - Potential Windows bugcheck due to BASP spinlock deadlock. - CQ72483 - System hangs or continually reboots with SoleRunner using T7.8 UEFI firmware. - CQ68020 - Add support for FCoE boot over UEFI. - CQ71757 - Only mark in the consumed table entries for those items that are enabled - CQ71758 - Put WWN pushed by IFM to the actual VF where FCoE is enabled. - CQ71189 - Add new command to ediag to support external I2C NVRAM
New UEFI SAN boot Known Limitations =================================== UEFI SAN boot is only supported on the root ports of the device. In pNIC mode this is not a problem but in vNIC2 mode that means the FCoE offload function under the OS HAS to be enabled on the PF0 or 1 vNIC port otherwise the hand off to the kernel will not happen correctly. UEFI FCoE BFS is in test for full support with the following operating systems: Windows 2008 R2 (SP1) x64 Windows 2012 x64 Windows 2012 R2 x64 SLES 11 SP2 SLES 11 SP3 UEFI FCoE BFS is in test for support with major caveats on the following operating systems: RHEL6.4 (boot time failover will not work) RHEL6.5 (boot time failover will not work) In MPIO configurations, RHEL6.[345] systems cannot tolerate failed paths during system boot. One specific interface must be online for boot to proceed (namely the last one specified for FCoE on the kernel command line). For example, the kernel command line dictates FCoE on eth1,eth2,eth3,eth4. If eth4 is down, the system will fail to boot. This issue is being addressed for future RHEL releases. Once the system is fully booted, any single path can go down, and multipathed will sustain failover. The following operating systems do not presently support UEFI FCoE BFS, efforts are underway to introduce this support in future versions of ESX. ESXi 5.0 (all updates) ESXi 5.1 U2 and below ESXi 5.5 GA UEFI FCoE BFS is not supported with any 32 bit OS
Caveats ======= - The following enhancement requests are not supported in this SW kit: -> CQ68018: Default to VLAN 1002 if VLAN discovery fails - FoD : FoD ready, but no FoD functions are supported at this time - Tundra : Limited to 2x10G mode operation. No 4x10G, nor 2x20G operation - VMware SRIOV support is limited to ESX 5.5 and above, and not supported on ESX 5.1 or prior. - HyperV : No Windows2012-inbox driver support in VM/Guest-OS - Storage support in T7.10 limited to 'Tundra'. - CQ70995 - Agentless Phase 1 Support "(Tundra only)" Included here on the T7.10 Gold Kit, but now shown by IBM testing to be non-functional. Will be addressed in T7.10A
Legacy ====== - E1 (57710/57711) devices are no longer supported by the 7.4 or later PXE. PXE updates on E1 devices must use 7.2.x based PXE or earlier (provided with this kit). - Windows 2003 support was discontinued as of the T7.0 program. - preventing driver install in W2K3 environment - preventing enumeration of iSCSI HBA in W2K3 environment - F6 kit is removed (no iSCSI boot over L4 path into W2K3)
Prerequisite ============ - FCoE is only supported using MFW - FCoE and iSCSI are only available in the presence of valid licenses in NVRAM - DCB/DCBX is required for FCoE. Please set NVRAM flag option #105 via Hii menu - There is no FCoE support for 10GbaseT designs
Known problems: =============== - CQ71356: Intermittent PCI-e link (GEN3) lock failure on repeated reboots - CQ71060: BACS unable to change resource reservations on NPar functions.
3rd party issues ================ - While performing shut/no shut on the switch port, it was observed that all initiators and targets were logged out from the FCoE database of FCF enabled VLAN by CN4093 switch. - After switch reboot, sometimes initiator and targets are logged out from the FCoE database of FCF enabled VLAN by CN4093 switch. Switch reboot is required to recover from this state. - In some cases, the “Application Protocol State Machine Status” for CN4093 switch port shows “Enable Operational” and “Enable Peer” status as “Disabled” for priority 3 resulting in inability to run the traffic with priority tag of “3”. This seems to be a switch issue which needs further investigation. - The “Default Port VLAN ID” of the CN4093 switch port connecting to the Broadcom FCoE initiator must be configured as “1” for switch to respond to VLAN Request. When the PVID of the switch port is configured as any value other than 1 then switch does not respond to the VLAN Request and initiator will not be able to login to the fabric.
Testing Information =================== - VMWare CMPI is NOT being tested by Broadcom PQA. - HW: -> External PHY Firmware versions for 10G Devices - 8727 : v4.06 - 8073 : v2.09 - Solarflare: v2.00 - 84833B1 : v1.52 (0x0134) - This package is provided with Storage at the committed Beta-1 level with very minimal Broadcom testing at this time - Tested with V7000 Flex storage node, DS3524, IBM XIV, DS8870 storage system and TS3310 Tape Library. Basic operation and light error injection only. - Topologies tested: IBM CN4093 in NPIV and IBM CN4093 Full Fabric mode were tested. Basic operation and light error injection only - Operating Systems tested: Windows 2012, ESX 5.1 and 5.5, RHEL6.4 and SLES11 SP3. No other operating systems tested at this time. - Compute Nodes tested: x240, x220, x440. Light testing only. - No FCoE boot support provided in this release - IBM blade BIOS/MP needs to updated to a minimum version B2BE122D/1AOO40E before installing Tundra adapter to prevent system from becoming unresponsive during boot.
Notables ======== - 10G MBA driver release no longer supports RPL protocol. All files with xMMBA.NIC and xMMBA.LOM are removed - iSCSI Initiator: [1] when using T6.x driver, there is *only* iSCSI Initiator support for the following Linux OS's: - RH6.0 and RH5.5 - SLES11-U1 [2] for any OS prior to RH5.4, or SLES11.0 the T5.2 driver set will need to be used. [3] Linux iSCSI VLAN tag dependent on L2 VLAN tag, must also be on same subnet [4] Linux iSCSI Path MTU not yet implemented [5] No routing support for SLES 11.3 ISCSI.
- The T6.2 based Solaris driver will support both 57711 and 57712. - The T6.2 based Solaris driver will not support Solaris10 U8, however it will support Solaris10 U9. - BASP w/ RSS enable can support a maximum of up to 4 processors - Broadcom does not recommend nor support enabling (manually) TCP Chimney Offload in Guest Operating Systems (GOS) running in Hyper-V on Windows Server 2008 R2 - The default Flow Control setting in the Linux driver for 5771x 10g Fiber devices is now set to disabled.
Disclaimer ========== - FCoE: Broadcom only officially supports the FCoE and DCB feature set on adapters that are licensed for FCoE, and for which EMC e-Labs certification is already complete or in progress. Broadcom will *not* provide field support for unqualified platforms. Please refer to the EMC e-Labs certification matrix for existing support matrix postings, or contact your Broadcom liaison to inquire about configurations currently in the qualification queue for eventual support. Exercising either FCoE or DCB on an unsupported platform may lead to unpredictable results.
Operating System coverage: ========================== Windows: - Server 2008 Enterprise Edition (SP2 and R2 w/ SP1) - Server 2008 Standard Edition (SP2 and R2 w/ SP1) - Server 2008 Datacenter Edition (SP2 and R2 w/ SP1) - Server 2008 for Embedded Systems (Base and R2 w/ SP1) - Server 2008 Web Server (SP2 and R2 w/ SP1) - Small Business Server 2011 (SBS V7) – Base - Small Business Server 2011 Essentials (Aurora) x64 - Server 2012 Enterprise Edition x64 (and R2) - Server 2012 Standard Edition x64 (and R2) - Server 2012 Datacenter Edition x64 (and R2)
Software Compatibility ====================== This release of software supports: - BCM5706 NetXtreme II Gigabit Ethernet Adapter - BCM5706S NetXtreme II Gigabit Ethernet Adapter - BCM5708 NetXtreme II Gigabit Ethernet Adapter - BCM5708S NetXtreme II Gigabit Ethernet Adapter - BCM5709 NetXtreme II Gigabit Ethernet Adapter - BCM5709S NetXtreme II Gigabit Ethernet Adapter - BCM57710 NetXtreme II Gigabit Ethernet Adapter - BCM57711 NetXtreme II Gigabit Ethernet Adapter - BCM57712 NetXtreme II Gigabit Ethernet Adapter - BCM57800 NetXtreme II Gigabit Ethernet Adapter - BCM57810 NetXtreme II Gigabit Ethernet Adapter - BCM57811 Netxtreme II Gigabit Ethernet Adapter - BCM57840 NetXtreme II Gigabit Ethernet Adapter
Contents of the CD ================== **** Release Version Information Table ****
Product Version Previous Release
Windows 2008/2012 Driver NX2 7.10.6.0* 7.10.6.0* BASP Windows 2008/2012/Vista ia32 1.6.14* 1.6.14* BASP Windows 2008/2012/Vista x64 1.6.14* 1.6.14* bxDiag 7.8.51.0a* 7.8.51.0a* Dos Ndis2 NX2 5.0.0 5.0.0 Dos Ndis2 NX2_Ev 7.8.0 7.8.0 iSCSI Boot 7.10.4 7.10.4 iSCSI Crash Dump Driver 7.10.1 7.10.1 FCoE Crash Dump Driver 7.10.2 7.10.2 Linux NetXtreme2 package 7.10.12 << 7.10.11 Linux Driver NX2 2.2.5f 2.2.5f Linux Driver NX2_Ev 1.710.10 << 1.710.09 Linux iSCSI Driver NX2 2.7.10.1b 2.7.10.1b Linux Driver CNIC 2.5.18d 2.5.18d Linux FCoE Driver NX2 2.4.2e 2.4.2e Linux uIP Driver 0.7.10.1d 0.7.10.1d PXE NX2 7.8.75 7.8.75 PXE NX2_Ev 7.10.5 7.10.5 PXE NX2_Ev (57710/57711) 7.2.29 7.2.29 Solaris NX2 7.10.1 7.10.1 Solaris NX2_Ev 7.10.3 7.10.3 UEFI Driver NX2 7.8.77 7.6.77 UEFI Driver NX2_Ev 7.10.13* 7.10.13* VBD Driver 7.8.50.0t* 7.8.50.0t* VBD Driver NX2_Ev 7.10.8* 7.10.8* Windows iSCSI Driver NX2 7.10.0.0* 7.10.0.0* FCoE Offload Driver 7.10.3.0* << 7.10.3.0 Bootcode for 5706 4.6.1 4.6.1 Bootcode for 5706s 4.6.1 4.6.1 Bootcode for 5708 7.4.0 7.4.0 Bootcode for 5708s 7.4.0 7.4.0 Bootcode for 5709 7.4.0 7.4.0 Bootcode for 5709s 7.4.0 7.4.0 Bootcode for 5716s 7.4.0 7.4.0 Bootcode for 57710 5.2.71 5.2.71 Bootcode for 57711 6.2.25 6.2.25 Bootcode for 57712 6.2.25 6.2.25 Bootcode for 57712 (MFW) 7.6.55 7.6.55 Bootcode for 578xx (MFW) 7.10.10 7.10.10 IPMI Firmware for 5708 1.06 1.06 IPMI Firmware for 5709 1.0.1 1.0.1 Ump Firmware for 5709 1.0.6 1.0.6 NCSI Firmware NX2 2.0.13 2.0.13 NCSI Firmware NX2_Ev (57710) 2.0.7 2.0.7 NCSI Firmware NX2_Ev (57711) 6.2.7 6.2.7 NCSI Firmware NX2_Ev (57712) 6.2.7 6.2.7 BACS for Windows 16.4.3 16.4.3 BACS for Linux 16.4.3 16.4.3 BACS Command Line Interface 16.4.3 16.4.3 Windows BMAPI 7.30.20 7.30.20 CABW32 6.2.1 6.2.1 CIM for Windows 16.0.16 16.0.16 CMPI provider for Windows 2.4.4 2.4.4 CMPI provider for Linux 2.5.11 2.5.11 CMPI provider for Linux (ppc) 2.4.4 2.4.4 CMPI provider for VMWare 2.5.11 2.5.11 CCM 7.10.6 7.10.6 DOS EDiag 7.10.9 7.10.9 DOS UEDiag 7.10.9 7.10.9 DOS uxDiag 7.10.2 7.10.2 Dos xdiag NX2 7.10.2 7.10.2 EFI xdiag64 7.10.2 7.10.2 UEFI EDiag 7.10.9 7.10.9 Firmware Upgrade Linux NX2 2.6.10 2.6.10 Firmware Upgrade Linux NX2 (ppc) 2.6.2 2.6.2 Firmware Upgrade Windows NX2 2.6.11 2.6.11 Linux Bmapi 6.23.6 6.23.6 Linux Bmapi (ppc) 6.22.3 6.22.3 Linux xDiag NX2 7.10.2 7.10.2 Linux eDiag NX2_Ev 7.10.9 7.10.9 PC Doctor NX2 3.7.1 3.7.1 SNMP-Basp 7.1.7 7.1.7 SNMP-Extensible-Agent 7.1.7 7.1.7 Driver Installer 32/64 Bit 16.6.1.3 << 16.6.1.2 BACS Installer 32/64 bit 16.6.2.2 16.6.2.2 UserGuide 14CSINGSRVT710-CDUM100-R 14CSINGSRVT78-CDUM100-R 84833B1 PHY fw 0x0134 0x0134
Note: An asterisk (*) following a version number represents a certified driver. Arrows (<<) between versions indicate the component has been updated from the previous released software kit.
* Third-party trademarks and copyrights are the property of their respective owners.
Broadcom, Broadcom Advanced Server Program, Broadcom Advanced Server Control Suite, and Smart Load Balance are registered trademarks of Broadcom Corporation.
********* Currently known issues and limitations with Broadcom NetXtreme drivers and devices. **********
1. BASP (the Broadcom Advanced Server Program) will appear to be bound to all adapters in the system once loaded. This binding is normal and is used only to determine compatibility with BASP. The binding is not active, as indicated by the gray background of the selection box. This pre-binding will not interfere with bindings to other software protocols.
2. The NetXtreme II drivers have two parts, the VBD driver and the NDIS Client driver. This combination of drivers can be used for WinPE installations as long as the WinPE image is built with the /PnP option. WinPE images that are booted with the -miniNT option will only load the NDIS driver so NetXtreme II network devices will not be functional in this environment. Use the -winpe option instead of the -minint option to boot WinPE when using NetXtreme II devices or use the special RIS driver contained in the distribution package in the NX2_RIS_Driver directory of the unpacked files.
3. Specifying network settings for NetXtreme II devices using the Microsoft unattended answer file does not work using the PCI Bus/Device/Function designation to specify adapters. This is due to the NDIS personality of the NetXtreme II device being a virtual device which means it does not have a physical Bus/Device/Function address. MAC address designation does work and may be used in conjunction with Bus/Device/Function for a complete solution. A program called netset.exe from Microsoft, available in the Windows 2000 Server Resource Kit, can also be used to apply network settings after the unattended install. Netset.exe uses the answer file to apply the network settings specified to the adapters in the system. See Microsoft Knowledge Base article 268781 for more information on netset.exe.
4. The first time diagnostics are run in a Windows environment on NetXtreme II devices, the diagnostic driver must be installed. Windows will either automatically install the driver, in which case, no action is required by the user, or Windows will ask to be directed to the INF file for the diagnostic driver. If you are prompted to install the driver, please direct the Windows dialog to search for the driver in the directory where the Broadcom driver package was unzipped. You may also search your hard drive for the file “bxdiag.inf.”
5. When loading drivers through the PNP (Plug and Play) method, users can occasionally end up loading the RIS drivers accidentally. Generally this occurs when a user is asked to point to the proper driver for the device, and the user selects the folder containing the RIS drivers as the driver for the device. This can result in network connections that fail to communicate across the network, as the NDIS driver will fail to bind to the devices. The most obvious way to identify the problem scenario is to open BACS and look at the network adapters displayed. Adapters that have the RIS drivers installed will be grayed out. Observing the driver loaded for the System Device portion of the Broadcom NetXtreme II devices will show that the RIS driver is loaded. Additionally, attempts to load the drivers using the installer will result in NDIS drivers displaying a yellow bang, as they’re not able to bind to the VBD driver. The easiest way to correct the problem is to run add/remove programs on all installed Broadcom devices, and then re-run the installer.
6. Windows Pre-installation Environment (WinPE for short) does not contain native support for 5708, 5709, 5716, 57710 and 57711 devices on operating systems prior to Windows Server 2008 R2. In order to “inject” driver support into Windows PE, refer to the steps provided by Microsoft at: http://support.microsoft.com/kb/923834/en-us. Broadcom 5708 Network Controller support is available as a native driver package in the Windows Server 2008 OS.
7. Network Teaming limitation with iSCSI offload: When iSCSI offload is enabled on Broadcom NetXtreme II NIC's or LOM's, only SLB teaming mode is supported. In order to create other teaming modes like 802.3ad and FEC/GEC, you will need to disable iSCSI offload. You can disable the iSCSI offload by a. launching the Broadcom Advanced Control Suite 3 (BACS 3). b. select the adapter you want to add to the team c. click the configurations tab, extend resource reservations. d. Uncheck iSCSI resource.
8. When iSCSI devices are installed on Windows Server 2003 or Server 2008, they will have the same friendly name. View devices "by connections" in bacs4 on for managing iSCSI devices.
9. Restoring the team configuration with static IPv6 addresses may fail. Use either DHCP addresses for team configuration, or restore the team and re-apply the IP address manually if this issue is encountered.
10. When working in BACS while being logged into W2K3 x86 with a non-administrator account, the same icon that is used for a non-teamed adapter is being displayed for a teamed adapter. This is due to the fact the non-admin account cannot query the driver due to insufficient privileges.
11. Windows Server 2008 R2 is expected to support the ability to utilize the TCP Offload Engine (TOE) on child partitions for supported Guest operating systems. However, the stack supporting this feature was not fully matured upon the completion of this Windows drivers release. As a result, we do not recommend enabling this capability with these drivers until an update to resolve these issues are released. This is now understood to be a third-party issue.
12. After upgrading to this version of the software in W2K8 we have noticed that during a team restore in bacs4 that not all of the IPv4 addresses for VLANS are restored properly. This may require that the team be recreated and saved.
13. Remote install of Windows Server 2008 R2 over non-offload path (MSFT stack) with new Broadcom adapters, e.g. 57711, which are not supported by the inbox driver will fail. The problem is due to a conflict between the inbox (boot.wim) driver not able to support the new adapters. Although the installer provides a newer driver externally during the installation, the OS reverts back to the inbox. Please refer to the workaround provided through the following link: http://attachments.wetpaintserv.us/JA9hJcVpHrEi11mJ19vYVg%3D%3D23856.
Alternatively, Microsoft’s proposed solution is to build a custom install DVD by extracting the boot.wim and overwrite the .INF and .SYS files with Broadcom’s newer driver set. Please read Microsoft’s WAIK documentation for instruction process.
Note: Remote install of Windows Server 2008 R2 over Broadcom iSCSI Offload path does not have an issue.
14. Flow control statistics (MAC Sent X-ON, MAC Sent X-OFF and MAC Rx w/ no Pause Command) are reported incorrectly within BACS for 57710 based adapters. There is no functional impact and device is working as expected.
15. Receive Side Scaling (RSS) on TCP offloaded connections require a minimum of 8 gigabytes of RAM and only works for the 64-bit version of Windows Server 2008 and Windows Server 2008 R2. This feature is not supported in Windows Server 2003 due to a limitation in this operating system. RSS on non-offloaded connections, however, is supported for Windows 2003 SP2 and later.
16. WoL with NPar: When using Wake on LAN (WoL) with NIC Partitioning, all of the devices that comprise a port must be shut down to cause the WoL configuration to be written to the controller during operating system shutdown. If only a single function is shut down, the WoL configuration might not be written to the controller, and the controller might not wake.
17. Editing BASP teams: There is a known problem where editing a BASP team in BACS can sometimes cause a failover to occur on another team. This is currently believed to be a Microsoft issue, and Broadcom is pursuing a fix or workaround.
18. NC-SI with IOMMU: There is a known problem using NC-SI with IOMMU enabled, that can cause link down/up under stress conditions. If this occurs, disabled IOMMU in the BIOS.
19. Legacy iSCSI boot: IBM does not support legacy iSCSI boot for Windows 2012 and beyond. This is due to Windows limiting support to UEFI boot only. Support for legacy iSCSI boot remains in the Broadcom controllers, to allow support of operating systems where this is allowed.
20. Legacy FCoE boot: IBM does not support legacy FCoE boot to any operating system. As of T7.8, this applies only to the Tundra controller in a Flex chassis, but this limitation of support will be carried forward. The only FCoE boot configuration that is allowed and supported is UEFI FCoE boot.
brcm_fw_nic_2_4_1c_linux_32-64_chg
BIOS/FW/UEFI Update for IBM N2215 SAS/SATA HBA
Controller Supported: IBM N2215 SAS/SATA HBA for IBM System x (47C8676)
- Fixed issue where acceptable indistro device drivers may not pass minium driver check. ibm_fw_mpt2sas_n2125-1_15_03_linux_32-64_chg
=============================================== Change History =============================================== Document Name: Change History Document Status: IBM General Avalibility Document Version: 3.2.4 Latest Driver Version: 3.2.4.0 Document Updated: 11/11/2013 Product: Brocade FC HBA / FCoE CNA
=================================================
Please visit www.brocade.com/hba for full documentation, additional drivers, and management applications.
Version 3.2.4.0 New Features and Feature Enhancement: - Support for RHEL5.10 and RHEL6.5
Version 3.2.3.0 New Features and Feature Enhancement: - Support for patching firmware via boot image - Support for Linux PTP - Support for UEFI Health Check Protocol - Support for SLES11SP3
Version 3.2.1.0 New Features and Feature Enhancement: - Support for "IBM Flex System FC5024D 4-port 16Gb FC Adapter" PART_NUMBER "95Y2381" - Support for RHEL5.9 and RHEL6.4
Fixes and Enhancements: - Enhanced Linux driver data path to properly handle IPv6 packets. - Enhanced Linux driver to make sure user configured path tov value is persistent and is not changed due to change in dev_loss_tmo.
Version 3.2.0.0 New Features and Feature Enhancement: - For Brocade 8x5/4x5, I/O interrupt latency values are dynamically updated. Changes are effective for all the ports on the given adapter. - Addressed infrequent PSOD in VMware ESX with iSCSI or VLAN configured traffic in DCB enabled network. - Enhanced BR1860 Tape IO performance. - Improved BR1860 initialization on Xen kernel.
Fixes and Enhancements: - BB Credit Recovery - Forward Error Correction (FEC) - Diagnostic Port (D-Port) - LUN Level IO Latency/Stats - UCM (Unified Configuration Manager) - Windows Network Performance and scalability enhancement
Version 3.1.0.0 Key features and enhancements supported for the software release 3.1.0.0 include the following:
New Features: - D-port support between Brocade 16Gb HBAs and Brocade 16Gb FC switch platforms with FOS v7.0.1 and later releases - FC-AL support for direct attach to storage - Ability to assign minimum bandwidth to each vNIC - Queue Depth adjustment - FC QoS set by percentage - Performance enhancements in Ethernet drivers - Technology Preview support of 1860 HBA on Power PC architecture
Fixes or Enhancements: - Resolved an issue where HCM Agent may not start if BR1860 adapter is configured in NIC mode. - Improved stability with Hyper-V and Teaming configurations. - Resolved I/O errors when running traffic with Brocade HBAs(models 415, 425, 815, 825, and 804), if the server’s PCI max read request size is configured to be 2K or greater with PCI Gen2x8.
Version 3.0.0.0 Fixes and Enhancements: - Added support for Brocade 1860 AnyIO Fabric Adapter (User configurable port mode - FC or NIC or CNA) - Added Fibre Channel 16G Support - Enabled Fabric Assigned Address in Fibre Channel Fabric - Added PF based Virtualization – vHBA - Enhanced CLI, HCM GUI and CIM support in inbox drivers. - Added PF based Virtualization - vNIC - Added iSCSI over DCB Support - Added Multiple Tx Priority Queues Support - Added SNMP Support
Version 2.3.0.3 Fixes and Enhancements: - Enhanced SNIA API to report port speed of 4 and 8Gbps in SNIA format. - Enhanced XIV array interoperability that addresses a data integrity corner case. - Enhanced the transmit path handling in Linux Network Driver to avoid a corner case that could lead to transmit path stall. - Enhanced the Linux Adapter Software installer script to update the initrd with the correct name even when there are multiple copies of the OEM specific initrd(s).
Version 2.3.0.0 Enhancements: - Enabled HP DL120 server to support Boot over SAN with two Brocade HBAs installed. - Improved network driver CPU and performance optimization. - Enabled automated target and LUN discovery of enterprise HDS storage once LUN masking has occurred. - Improved Tivoli interoperability to meet device display requirements.
Version 2.2.0.1 Added capability to handle ADISC frames. Unhandled ADISC use can cause SAN boot failure when booting from IBM storage array.
Version 2.2.0.0 Adds support for bootcode updates to Bladecenter 10G Converged Network Adapters
Version 2.1.0.0 Adds support for bootcode updates to 10G Converged Network Adapters
Version 2.0.0.0 Initial release for 4/8G FC HBAs brcd_dd_fc_bfa-3_2_4_0_sles11_32-64_chg
=============================================================================== Emulex FC/FCoE Device Driver for Linux ===============================================================================
Driver Version: 8.3.7.29 (supported on IBM System x, BladeCenter and Flex)
Problems Fixed: - Execution of internal loopback causes a crash - Issue which can cause multipath failover to not work properly
Incremental Interoperability: - IBM Flex System FC5052 2-port 16Gb FC Adapter - IBM Flex System FC5054 4-port 16Gb FC Adapter - IBM Tape unit interoperability - see SSIC for more information - SLES 11.3 on IBM System x and BladeCenter
Driver Vers: 8.3.7.18 (Supported for IBM System x & BladeCenter)
Problems Fixed: - FLOGI sent with Class 2 in-order bit set when Class 2 is set as unsupported class of service - OXID Reused before RA_TOV without RRQ to recover - Intermittently storage paths will not recover after switch reboot
Driver Vers: 8.3.6.4 (Previously supported on IBM Flex)
Problems Fixed: - Fixed debug helper routine failed to dump CQ and EQ entries in non-MSI-X mode - FLOGI sent with Class 2 in-order bit set when Class 2 is set as unsupported class of service - Fixed boot from san failure when SLI4 FC device presented on the same PCI bus - Fix ABTS recovery to be FC spec compliant - Fixed not reporting logical link speed to SCSI midlayer when QoS not enabled - Fix performance problem in pt2pt mode - Fixed SCSI host create showing wrong link speed on SLI3 HBA ports - Update text for misconfigured port messages - Fix discovery bug when swapping cables
Interoperability since previous release: - RHEL6.3 GA Kernel
Driver Vers: 8.3.5.86 (Previously supported on IBM SystemX & BladeCenter)
Problems Fixed: - Kernel panics with FCoE on HS23 in SLES 11.2 x86_64. Also requires a SLES11.2 kernel update - FLOGI sent with Class 2 in-order bit set when Class 2 is set as unsupported class of service
Interoperability since previous release: - RHEL6.3 GA Kernel
Driver Vers: 8.3.5.74 (Previously supported on IBM SystemX, BladeCenter & Flex)
Problems Fixed:
- Fixed system crash due to not providing SCSI error-handling host reset handler - Debug helper utility routines for dumping various SLI4 queues - Fix unsol abts xri lookup - Fixed issues with LPe16000 to LPe16000 discovery - Fix driver crash during back-to-back ramp events - Reregister VPI for SLI3 after cable moved to new Saturn port - Fix log message 2597 displayed when no error is detected - Fixed FCP LOG for easier Finisar trace correlation - Fix kernel panic when going into to sleep state - Fix error message displayed even when not an error - Fix Read Link status data - Fix unable to create vports on FCoE SLI4 adapter - Fix initiator sending flogi after acking flogi from target - Fix the case where an array controller does not apply FCP priority rules - Added support for handling SLI4-port XRI resource-provisioning profile change - Change default DA_ID support from disabled to enabled - Fix bug with driver unload leaving a scsi host for a vport around - Update copyright date for files modified in 2012 - Fix compilation errors on some kernels due to debugfs variable definitions - Used PCI configure space read to flush PCI function reset register write - Fixed system panic when extents enabled with large number of small blocks - Fixed system panic during EEH recovery - Fix resource leak when acc fails for received plogi - Fix SLI4 driver module load and unload test in a loop crashes the system - Fix missing CVL event causing round-robin FCF failover process to stop - Fix deadlock during adapter offline request - Fix same RPI registered multiple times after HBA reset
Driver vers: 8.3.5.66 (Previously supported on IBM SystemX, BladeCenter & Flex)
Problems Fixed:
- Fix SLI4 driver module load and unload test in a loop crashes the system - Fix missing CVL event causing round-robin FCF failover process to stop - Fix deadlock during adapter offline request - Fix same RPI registered multiple times after HBA reset - Fix driver handling of XRI Aborted CQE response - Fixed port and system failure in handling SLI4 FC port function reset - Fix bug with driver not sending a LOGO with vport delete - Make BA_ACC work on a fully qualified exchange - Fix for SLI4 Port delivery for BLS ABORT ACC - Fix KERNEL allocation while lock held - Incorrect usage of bghm for BlockGuard errors - Fix warning on i386 system - Fix ndlp nodelist not empty wait timeout during driver unloading - Fix mailbox and vpi memory leaks - Support character device to take a reference on the driver - Fix for FDISC failures after firmware reset or link bounce - Support debugfs for injecting T10 DIF errors - Fix SLI4 BlockGuard behavior when protection data is generated by HBA - Fix for driver using duplicate RPIs after 16Gb/s adapter port reset - Fix discovery problem when in pt2pt - Fixed failure in handling large CQ/EQ identifiers in an IOV environment - Fix Locking code raises IRQ twice - Fix driver not returning when bad ndlp found in abts error event handling - Support more driver logs in area of SLI4 port error attention and reset recovery - Fix bug with driver returning the wrong ndlp - Sync up with actual upstream lpfc driver code - Support SLI4 16Gb FC Adapter support for T10 DIF / BlockGuard - Merge from upstream: scsi: Fix up files implicitly depending on module.h inclusion - Fix driver behavior when receiving an ADISC - Fixed unbounded firmware revision string from port caused the system panic - Fix bug with driver processing dump command type 4 using 16Gb FC Adapter - Fix driver does not reset port when reset is needed during fw_dump - Fix ELS FDISC failing with local reject / invalid RPI - Changed SLI4 FC port internal loopback from outer serdes to inner internal - Fix REG_RPI fails on SLI4 HBA putting NPort into NPR state - Fix bug with driver processing an els command using 16Gb FC Adapter - Fix NMI seen due to CQE starvation - Fixed SLI4 FC port obtained link type and number dependent on link connection - Fixed SLI4 FC port internal loopback without SFP and external link/loopback plug - Fix driver incorrectly building fcpCdb during scsi command prep - Fixed FCP EQ memory check prevent initialize to single interrupt vector case - Fixed SLI4 16Gbit FC port internal and external diagnostic loopback tests - Fixed system panic during EEH recovery on SLI4 FC port - Fix FLOGI fails with invalid RPI (0x04) after connecting to a arbitrated loop - Fix ELS SCR failing with local reject / invalid RPI - Fix SLI4 port failures after firmware reset or dump - Fix port reset log messages indicate error when no error is seen - Fixed an issue where HBQ buffers are uninitialized in the base driver - Fixed missing shost lock protection on setting/clearing bit in vport->fc_flag - Fixed missing hbalock protection on setting/clearing bit in phba->link_flag - Fixed illegal state transition during driver unload - Fixed system crash on SLI4 FC port looopback diagnostic test with large buffers - Fixed a potential error path that might try to free DMA memory not allocated - Fixed SLI4 FC port Internal and External loopback diagnostic tests - Fix a crash while deleting 256 vports - Fix vport never finished discovery if switch runs out of resources - Fix kernel build warnings - Fix kernel panic when putting board in offline state twice - Fix memory leak when running hba resets to SLI-4 board - Fix driver message 3092 and 3116 to KERN_WARNING - Fix PCI read failure looks like a over temperature event - Fixed driver event reporting to mgmt on error attention due to forced dump - Fix not displaying firmware rev for BE UCNA boards - Fixed ABTS failure logic not rediscovering targets - Fix bug with driver not byte swapping extended mailbox data - Fix premature ndlp cleanup after second target LOGO - Fix Link pull causes I/O failures - Support loop for sli4 fc pass-through - No longer read fcoe parameters if board is not fcoe - Fix bug with driver passing a wrong count value - Support restore state and error log when sysfs board_mode attribute access failed - Fixed a typo in two of the log messages just introduced - Support for SLI4_CONFIG non-embedded COMN_GET_CNTL_ADDL_ATTR pass-through - Support for SLI4 FC port persistent linkdown through config region 23 - Fix for ABTS. Do not free original IOCB whenever ABTS fails - Fixed Linux driver inconsistency in reporting FC host port-state through OCM - Return an error if the mbox sysfs is called - Fix firmware upgrade attempt on unsupported adapter - Fix incomplete message number 2889 - Fix system crash when ASIC fails to initialize - Fix virtual fabrics bit set in FLOGI incorrectly - Fix bug with driver not returning extended mailbox data - Fix unsupported link speed accepted by SLI4 port - Incremented minor management version to reflect additional "protocol" sysfs attribute - Modify WQ handling to use entry_repost - Moved link type definitions to apply to all driver streams - Support a sysfs attribute "protocol" to report SLI4 port link protocol type - Support SLI4 INTF_TYPE and SLI_FAMILY as sub-field to the fwrev sysfs attribute - Support structure to support T10 DIF in SLI4 - Fix performance slowed due to too many register accesses - Fixed a warning when converting from simple_strtoul to strict_strtoul - Support Initial code to inject T10 DIF errors - Fixed a possible driver crash when cfg_fcp_eq_count is zero - Fixed non-embedded COMMON_GET_CNTL_ATTR mbox command failed with status 0x4 - Fixed null pointer dereference after clearing FCP policy rules - Changed the way of SLI4 device detecting physical port name - Fixed FCP policy exchange management rule parsing - Support check to lpfc_decode_firmware_rev to handle releases that have an 'X' - Fixed RPI leaks in ELS protocol handling - Fix kernel crash during boot with SLI4 card installed - Fixed NPIV FDISC failure on SLI4 if-type 2 ports - Fixed driver failed to follow IP reset procedure in SLI4 error attention handler - Fix sysfs lists fabric name for port that has been disconnected from fabric - Support FCP policy exchange management - Changed the timeout to 300 seconds for SLI_CONFIG (0x9B) mailbox command - Fixed fcp underrun reporting - Fixed a driver handling IP reset issue when PCI read return error - Fixed casting problem in calculating tx_words statistics - Support proper error code return for libdfc calling API to make proper decisions - Fix sli4 mailbox status code. Management software has dependencies - Fix compiler warning due to uninitialized local variable - Fix bus reset handler fails with bad failure code - Made proper error code return for libdfc calling API to make proper decisions - Made error log include PCI BAR bitmap from kernel when enable PCI device failed - Fixed sysfs API mismatch for building against SLES11 SP2 beta kernel - Fixed scsi midlayer queuecommand API mismatch for SLES11 SP2 beta kernel - Fixed ctlreg write bug not checking key string and limiting bytes to write - Fix default adapter name for the OCe15100 - Fixed incomplete scsi messages displayed - Fix cable pull failure on interface type 2 SLI-4 adapters - Fix enable_bg config parameter for SLI4 - Fixed not able to perform firmware reset through sysfs board_mode attribute - Fixed not recovering SLI port in handling error attention with RN bit set - Fixed two crash cases when unsolicted ELS ECHO_CMD is received - Fix direct connect does not come up for SLI4 FC ports - Fixed long wait when firmware reset to a SLI port without required privilege - Fix request firmware support for little endian systems - Fix driver firmware to match new firmware image format - Fixed SLI4 device firmware reset with SR-IOV virtual functions - Fix SLI4 CT handling for sequences > 4K - Fixed handling of unsolicited frames for vports - Fixed handling of CVL for vports - Fixed crash when aborting els IOs - Fix up CT and oxid/rxid for unsol rcv frames - Fixed mailbox double free panic - Support fcf priority record selection for fcf failover - Fixed compiler warning for putting large amount of memory on stack - Fixed driver build not building in debugfs even if kernel CONFIG_DEBUG_FS=y is set - Fix issue where the FC/FCoE Async Receive CQE did not scale for 16G FC adapters - FLOGI payload has Multiple N_port_ID set when lpfc_enable_npiv clear - Removed unused argument passed to the lpfc_bsg_diag_mode_enter routine - Fixed new ASIC device-mgmt BSG pass-through failed multi-buffer fw download - Support sysfs logging when writeable parameters are changed - Used PCI config space capability for sysfs get PF supported SR-IOV number of VFs - Support wait for SLI port status register for readyness following firmware reset - iDiag added SLI4 device PCI BAR memory mapped reigster access methods - Consolidated duplicating macro definitions - Fixed failure to enable PCIe AER prevent driver initialize and attach to device - Modified log messages for T10-PI processing - iDiag fixed mailbox capture and dump overlapping bitmap macro definition elx_dd_fc_ibm1212-8_3_7_29-1_sles11_32-64_chg
ServeRAID M and MR10 Series SAS Controller Driver for Linux (also supports MegaRAID 8480 SAS Controller)
Adapters Supported: - ServeRAID M1215 SAS/SATA Controller for IBM System x (46C9114) - ServeRAID M5210e SAS/SATA Controller for IBM System x - ServeRAID M5210 SAS/SATA Controller - ServeRAID M5110 SAS/SATA Controller for IBM System x (81Y4481) - ServeRAID M5110e SAS/SATA Controller for IBM System x - IBM Flex System Storage Expansion Node - ServeRAID M5120 SAS/SATA Controller for IBM System x (81Y4478) - ServeRAID M5016 SAS/SATA Controller for IBM System x (90Y4304) - ServeRAID M5115 SAS/SATA Controller for IBM System x (90Y4390) - ServeRAID M5015 SAS/SATA controller (46M0829) - ServeRAID M5014 SAS/SATA controller (46M0916) - ServeRAID M1115 SAS/SATA Controller for IBM System X (81Y4448) - ServeRAID M1015 SAS/SATA Controller (46M0831) - IBM ServeRAID MR10il SAS controller (44E8767) - IBM ServeRAID MR10is SAS controller (44E8695) - IBM ServeRAID MR10ie (CIOv) SAS controller (46C7167) - IBM ServeRAID MR10i SAS controller (43W4296) - IBM ServeRAID MR10k SAS controller (43W4280) - IBM ServeRAID MR10M SAS controller (43W4339) - MegaRAID 8480 SAS controller (39R8850)
Version 6.602.03.00-1 - Suggested ------------------- Enhancement: - Add support for ServeRAID M1215 SAS/SATA Controller Fixes: - Fixed an issue where Kernel panic occurs due to timeout of MFI/MPT pass-through command, followed by completion through Interrupt context. Note: Device driver version is 6.602.03.00.
Version 6.600.20.00-4 - Suggested ------------------- Fixes: - Fixed reboot issue in SLES 11.3 xen. Note: Device driver version number has not changed. Version 6.600.20.00
Version 6.600.20.00 - Suggested ------------------- Enhancement(s): - Add Support for ServeRAID M5210 and M5210e SAS/SATA Controller
Version 6.506.00.00 - Suggested ------------------- Retain Tip: Tip #28016 Enhancement(s): - Added ability for user to configure the maximum number of MSI-X vectors launched for M51XX and M1XX controllers.
Version 00.00.06.19 - Suggested ------------------- Fixes: - Fixed an issue where a kernel crash may occur in some cases, when megaraid_sas driver is loaded but controller is not present.
Version 00.00.06.15.01 - Suggested ------------------- Fixes: - Corrected version strings in the iso and rpm files. NOTE: No change to the device driver. Packaging fix only.
Version 00.00.06.15 - Suggested ------------------- Enhancements: - Add support for fpRead/WriteCapable & fpRead/WriteAcrossStripe - Add support for SLES 11 SP2.
Fixes: - Mask off MFI_FRAME_IEEE, MFI_FRAME_SGL64, MFI_FRAME_SENSE64 in megasas_mgmt_fw_ioctl() to prevent memory scribble issues from incorrectly built MegaCli frames. - Fixed reglockFlags for degraded RAID 5/6.
Version 00.00.06.12-01 - Suggested ------------------- Fix - Fixed issue where the device driver may fail to install with the following error: "389 SCRIPT INTERNAL INCONISISTENCY! REPORT TO IBM IMMEDIATELY" Note: No change to device driver version.
Version 00.00.06.12 - Suggested ------------------- Enhancement - Add support for ServeRAID M5016
Fixes - LSI Channel fixes
Version 00.00.04.38 - Non-critical ------------------- - Fixed issue where device driver could print message "kernel megasas: Command pool empty!" when the controller and megaraid driver are idle.
Version 00.00.04.37 - Suggested ------------------- - Fixed issue where the ServeRAID M1015 controller will halt during a OCR. - Fixed issue where OCR will not execute when the physical drives are in a power transition mode. - Fix issue where the ServeRAID M1015 controller will halt with a degraded RAID 5 array during IO.
Version 00.00.04.30 - Non-critical ------------------- - Added support for the ServeRAID M5025 SAS/SATA Controller
Fixes: - Fixed issue where during IO firmware faults at line : MonTask: line 1193 in file ../../raid/1078dma.c - Fixed issue where After 64 VD's are created using MSM the 'fdisk -l' command does not work. - Fixed issue where the firmware faults at line 739 in file ../../raid/1078main.c when rebooting after a recon. - Fixed issue where the drive partition is no longer present on the OS after importing a foreign configuration. - Fixed issue where Linux does not show the correct size of VD the second time if the 'fdisk -l' command is executed.
Version 00.00.04.17 - Non-critical ------------------- - Added support for the ServeRAID M1015 SAS/SATA controller. - Added support for the ServeRAID M5000 Series Advanced Feature Key.
Version 00.00.04.10 - Non-critical ------------------- - Added logic to support next-gen SAS2 controllers. - Added support for the ServeRAID M5015 and M5014 SAS/SATA controllers.
Version 00.00.03.23 - Non-critical ------------------- - Added support for the IBM ServeRAID MR10ie (CIOv) SAS controller. - Fixed an issue where, on a Xen kernel with guest OSs running, invoking kdump causes a system reboot. - Fixed an issue that results in a kernel panic when kdump is run on a system with heavy drive I/O.
Version 00.00.03.21 - Suggested ------------------- - Added support for the IBM ServeRAID MR10is SAS controller. - Fixed an issue where a command timeout would occur on a particular SAS hard drive, and would not recover. - Added a shutdown DCMD call to the shutdown routine to ensure a graceful shutdown. - Updated the list of required pre-built binaries. - Fixed an issue the could cause unexpected interrupts. - Fixed an issue where a memory sanity check would sometimes fail for a certain pointer on a 64-bit system, causing some enclosure components to not be seen.
Version 00.00.03.18 - Suggested ------------------- - Added support for the IBM ServeRAID MR10il SAS controller. - Fixed an issue where the OS would not reboot when a rebuild was in progress.
Version 00.00.03.13 - Non-critical ------------------- - Added support the IBM ServeRAID MR10i, MR10k, and MR10M SAS controllers. - Fixed an issue where, on boot to Xen kernel on Red Hat Enterprise Linux (RHEL) 5 64-bit, the user would encounter an “Error 13: Invalid or unsupported executable format” error.
Version 00.00.03.06 - Suggested ------------------- - Added diskdump support for Red Hat Enterprise Linux (RHEL) 3 and RHEL 4. - Set the reply_q_sz value to the maximum number of commands supported by the firmware. - On 2.4 kernels: fixed an issue where, when the system was rebooted, the shutdown routine did not get called; added a notifier for the reboot event and initiated a flush command from the reboot event handler. - Fixed issue where, on RHEL 3 Update 6, the driver would not install on AMD64 systems.
Version 00.00.03.01-1 --------------------- - Initial release ibm_dd_sraidmr_6_602_03_00-1_sles11_32-64_chg
======================================================= Change History for Qlogic Converged Network Adapter STOR FCoE Driver ======================================================= Document Name: Change History Document Status: IBM General Avalibility Document Version: 8.3 Latest Package Version: 8.06.00.10.a Latest Driver Version: 8.06.00.10 Document Updated: 02/15/2014 Product: Qlogic FCoE Linux Device Driver
Please visit www.qlogic.com/hba for full documentation, additional drivers, and management applications.
Version 8.06.00.10 Fixes and Ehancements:
Software/Driver
* Added T10 DiF/DiX support for ISP83xx.
* ISP83xx CNA support * IDC support for three protocols. * Loopback support. * Beacon support.
* Added support for bidirectional commands
* Added support for MCTP dump
* ISP83xx(16G FC) support for Xenserver 6.0 and Oracle UEK.
* SRB Consolidation.
* RSCN handling changes.
* Increase in support of maximum fibre devices.
* Enhancements to support ISP83xx (Limited support). * Driver features supported * 10GB link support only * Port device discovery * LUN discovery * I/O * Perturbations * SG resets of host and SCSI devices.
* Driver features not supported * Beacon support * Loopback * T10 DIX/DIF * SFP read/write * QCC GUI Support * QCC CLI Support * NPIV * Multi-Queue * Boot from SAN * FC-Tape * SLES10.3 driver: * Fix not to MPI reset on ISP83xx is not included.
* Implemeted beacon on/off for ISP82xx.
* Add support for ISP82xx to capture dump (minidump) on failure.
* Provide method for updating I2C attached VPD.
* Resync with latest ISP24xx/25xx firmware (5.08.00).
Industry Standards Compliance ----------------------------- * N/A
3. Bug Fixes
The following fix has been made to the Fibre Channel and FCoE Adapter Inbox Driver Update for Linux Kernel 2.6.x and 3.x:
* 8.04.00.12.xx.y-k * Update the copyright information. * Display the lock owner on lock acquire failure. * Move loopback mode reset after chip reset check. * Extra loopback error handling for ISP83xx. * Do link initialization on get loop id failure. * Do MPI reset only for 81xx.
V2632 (RHEL 6.x, SLES 11.x, Citrix 6.0, UEK): * Revert "qla2xxx: Optimize existing port name server query matching." * Revert "qla2xxx: Avoid losing any fc ports when loop id's are exhausted." * Don't free pool that wasn't allocated. * Unload hangs after issuing BSG commands to vport.
Citrix 6.0: * Create initrd as a part of installation and removal of the driver rpm. * RPM install should install driver under extra instead of driver directory.
RHEL 5.x, SLES 10.x: * MBA_IDC_NOTIFY case should fallthru. * Add fw_dump_size sysfs attribute file. * Add test for validity of virtual host in netlink interface.
SLES 10.x: * Add 8031/2031 cases to request firmware.
* 8.04.00.11.xx.y-k * Move marking fcport online ahead of setting iiDMA speed. * Add 16Gb/s case to get port speed capability. * Get VPD information from common location for CNA. * Dont clear drv active on iospace config failure. * Display that driver is operating in legacy interrupt mode. * Add "16" speed to link speeds array in qla2x00_iidma_fcport() function * Correct race in loop_state assignment during reset handling. * Reject loopback request if one is already in progress. * Update the FTP site references in the driver sources.
V2632 (RHEL 6.x, SLES 11.x Citrix 6.0 and UEK): * Obtain loopback iteration count from bsg request. * Parameterize the link speed string conversion function. * Update ql2xextended_error_logging parameter description with new options. * Fix typo in qla2xxx driver. * Free rsp_data even on error in qla2x00_process_loopback(). * Avoid null pointer dereference in shutdown routine.
RHEL 5.x: * Remove fabric_logout() calls from qla2x00_dev_loss_tmo_callbk() function.
SLES10.x: * Clear local references of rport on device loss timeout notification from FC transport.
* 8.04.00.10.xx.y-k * Honor status value of 2 for report-id acquisition. * Ignore driver ack bit if corresponding presence bit is not set. * Add Gen3 PCIe speed 8GT/s to the log message. * Acquire risc semaphore before resetting ISP.
V2632 (RHEL 6.x, SLES 11.x Citrix 6.0 and UEK): * Ramp down queue depth for attached SCSI devices when driver resources are low. * Determine the number of outstanding commands based on available resources. * Fix for kernel crash when external loopback diagnostic is run through BSG interface. * Fix coccinelle warnings in qla2x00_relogin. * Test and clear FCPORT_UPDATE_NEEDED atomically. * Use correct Request-Q-Out register during bidirectional request processing * Fix typo in qla83xx_fw_dump function. * Move noisy Start scsi failed messages to verbose logging level. * Fix for warnings reported by sparse.
RHEL 5.x: * Inclusion of 4G/8G firmware version 5.08.00. * Log message when qla2xenablemsix module parameter is set to 2( MSI mode) and adpater does not support MSI mode. * Revert "qla2xxx: Use GFF_ID to check FCP-SCSI FC4 type before logging into Nx_Ports" * Revert "qla2xxx: No fcport FC-4 type assignment in GA_NXT response."
Citrix 6.x: * RPM build should hide the directory naming convention from user.
* 8.04.00.09.xx.y-k * No fcport FC-4 type assignment in GA_NXT response. * Fix checkpatch error in qla2xxx_mctp_dump. * Change in setting UNLOADING flag and FC vports logout sequence while unloading qla2xxx driver. * Clear unsupported 'states' during Get-FW-State queries.
V2632 (RHEL 6.x, SLES 11.x Citrix 6.0 and UEK): * Pass correct parameters while creating an initrd. * Remove spurious taking of ha->vport_slock spinlock.
UEK: * Add macro for kernel extended version.
RHEL 5.x: * Use GFF_ID to check FCP-SCSI FC4 type before logging into Nx_Ports. * Pass correct parameters while creating an initrd.
8.04.00.08 Initial release of Qlogic 10Gb FC Driver for RHEL5
qlgc_dd_fc_qla2xxx-8_06_00_10_a_sles11_32-64_chg
=============================================================================== Emulex iSCSI Device Driver for Linux ===============================================================================
Driver Version: 4.6.267.4 (supported on IBM System x, BladeCenter and Flex)
Problems Fixed: - RH5.9 kernel panic after rebooting the OS
Device Driver Version: 4.4.175.0 (Previously supported on IBM Flex)
Problems Fixed: - Cleaned up a cosmetic problem with warning messages during driver compile from source - System crashes when we run simultaneous IO to 6 vNIC’s with iSCSI IO - Linux kdump kernel crashes during shutdown after capturing dump, if be2iscsi driver running
Driver Version: 4.1.402.0 (Previously supported on IBM SystemX & BladeCenter)
Problems Fixed:
- LUN is not getting detected for OEM CNA in SLES 11 SP2 64 bit OS - ioctl semaphore deadlock when running load/unload loop with target - SLES 11 SP2 GMC: Enable support for Lnx iSCSI Driver - RHEL 5.8 GA: Enable support for Lnx iSCSI Driver
Driver Version 4.1.334.39 (Previously supported on IBM SystemX & BladeCenter)
Problems Fixed:
- Emulex: Warning messages seen while building Emulex drivers on RHEL platform - Unable to load be2iscsi driver during iSCSI boot OS install - Modprobe be2iscsi hangs when system with max targets login - be2iscsi unload hangs the system - fw rebooted on 1st mbox cmd after driver load > unload > load - Failed to initialize iscsi driver - need to define DMA_32BIT_MASK / DMA_64BIT_MASK in Linux kernel 3.x.x elx_dd_iscsi_ibm1212-4_6_267_4-3_sles11_32-64_chg
Firmware Version: 2.01a11 (w/ 5.12a13 Universal Boot Code) (Supported for IBM System x & BladeCenter)
Problems Fixed: - Emulex FC Adapter does not auto-enable SAN boot mode when boot target configuration is made via IFM (BOFM) - Emulex FC configuration utility is in the wrong F1 setup screen - IBM CIOv adapter connected to Brocade 8 Gig FC BladeCenter switch intermittently Links up at less than 8 Gig
Firmware Version 2.01a3 (w/ 5.12a5 Universal Boot Code)
New Features
- Enhanced timeout notifications for processing abort failures.
Problems Fixed:
- All multi-abort I/Os are returned on the same ring from which the ABORT_MXRI command was received. - Changed the TRCV response in the abort state to CMD RJT to enable the TRSP to be processed. - Corrected an issue with blocked TSEND operations. - Corrected a buffer leak issue with RRQ exchanges. - Corrected an issue where the TRCV IOCB was de-queued improperly causing a XFR_RDY flood. - Corrected an issue where the OXID field was not loaded in the XRI_ABORTED IOCB. - Corrected an issue in recognizing whether an EEPROM is present.
Dependencies:
- The corresponding FC Storport device driver and OneCommand Manager Core-kit (management) will need to be installed for this package to function properly.
1. Fixed an issues booting when more than 8 ports are present in the system and fixed an adapter display issue when more than 8 ports are present in the systems 2. Fixed issues installing and booting O/Ss on ports greater than 8. 3. Fixed some boot time screen display issues.
(2) OpenBoot version 3.10a3
This version of OpenBoot supports FC-AL, Private loop, Public loop, and Fabric Point to Point. Also, it supports multi-initiators and multi-LUNs (0 through 4055)
Problems fixed, features added or other updates:
1. Unrelated to IBM
(3) EFIBoot version 4.12a12
The current EFI (Extensible Firmware Interface) Boot provides 64-bit System boot capability through the use of the EFI Shell. This EFIBoot supports EFI Specification 1.10 and EFI Source Code version 1.10.14.61.
Problems fixed, features added or other updates:
1. Only certain OEM HBAs will locate PlatformToDriverConfiguration- ProtocolGuid. Others just skip and continue processing 2. UEFI2.3 Hii Configuration Utility changes 3. HII Browser Save option does not work
1. On a port connected to a 3PAR "MBOD" cage, the test runs IO to the disk drives and issues a "controlport offline" command to offline the port while IO is running.
2. While doing target side cable pull testing with Block Guard (T10) Enabled we observed that adapter is not sending RSCN to AIX.
Dependencies: - The corresponding FC Storport device driver and OneCommand Manager Core-kit (management) will need to be installed for this package to function properly. elx_fw_fc_ibm1212-2_01a11-11_linux_32-64_chg
Broadcom NetXtreme TG3 Linux Driver
Version 3.136e
Copyright (c) 2010 - 2014 Broadcom Corporation All rights reserved
tg3: Poll cpmu link state on APE + ASF enabled devices
On ASF enabled devices where the mgmt firmware runs on the application processing engine, there is a race between the tg3 driver processing a link change event and the ASF firmware clearing the link changed bit in the EMAC status register. This leads to link notifications to the driver sometimes getting lost.
Poll the CPMU link state as a backup for the normal interrupt path update if ASF is enabled.
Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
tg3: Set the MAC clock to the fastest speed during boot code load
On the 5717, 5718 and 5719 devices, the bootcode runs slower when any port doesn't have a link due to clock speed slowing down as part of the link-aware feature. This leads to the driver timing out waiting for the bootcode signature.
This patch overrides the clock policy to the highest frequency just before reset and restores it after the bootcode is up.
Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
commit e565eec31d9d5b1024311564f6536162df951de4 Author: Michael Chan Date: Fri Jan 3 10:09:12 2014 -0800
tg3: Add unicast filtering support.
Up to 3 additional unicast addresses can be added to the perfect match filter table.
Signed-off-by: Michael Chan Signed-off-by: Nithin Nayak Sujir Signed-off-by: David S. Miller
commit f022ae62dd84425192b27100dcf907019f654d02 Author: Michael Chan Date: Fri Jan 3 10:09:11 2014 -0800
tg3: Refactor __tg3_set_mac_addr()
so that individual MAC address filter entries can be set.
Signed-off-by: Michael Chan Signed-off-by: Nithin Nayak Sujir Signed-off-by: David S. Miller
tg3: Expand 4g_overflow_test workaround to skb fragments of any size.
The current driver assumes that an skb fragment can only be upto jumbo size. Presumably this was a fast-path optimization. This assumption is no longer true as fragments can be upto 32k.
v2: Remove unnecessary parantheses per Eric Dumazet.
Cc: stable@vger.kernel.org Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
tg3: Initialize REG_BASE_ADDR at PCI config offset 120 to 0
The new tg3 driver leaves REG_BASE_ADDR (PCI config offset 120) uninitialized. From power on reset this register may have garbage in it. The Register Base Address register defines the device local address of a register. The data pointed to by this location is read or written using the Register Data register (PCI config offset 128). When REG_BASE_ADDR has garbage any read or write of Register Data Register (PCI 128) will cause the PCI bus to lock up. The TCO watchdog will fire and bring down the system.
Signed-off-by: Nat Gurumoorthy Acked-by: Michael Chan Signed-off-by: David S. Miller
tg3: Expand multicast drop counter miscounting fix to 5762
commit 4d95847381228639844c7197deb8b2211274ef22 - "tg3: Workaround rx_discards stat bug", added a workaround for miscounted statistics for multicast packets. This fix needs to be applied to the 5762.
Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
tg3: Add flag to disable 1G Half Duplex advertisement
Some link partners have issues if the non-standard 1G half duplex is advertised. This patch adds support for an nvram setting to disable the advertisement.
Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
rxbds_empty is an informational statistic signifying that a ring full condition was observed. It does not mean an overflow has occurred.
Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
commit 8496e85c20e7836b3dec97780e40f420a3ae2801 Author: Rafael J. Wysocki Date: Sun Dec 1 02:34:37 2013 +0100
PCI / tg3: Give up chip reset and carrier loss handling if PCI device is not present
Modify tg3_chip_reset() and tg3_close() to check if the PCI network adapter device is accessible at all in order to skip poking it or trying to handle a carrier loss in vain when that's not the case. Introduce a special PCI helper function pci_device_is_present() for this purpose.
Of course, this uncovers the lack of the appropriate RTNL locking in tg3_suspend() and tg3_resume(), so add that locking in there too.
These changes prevent tg3 from burning a CPU at 100% load level for solid several seconds after the Thunderbolt link is disconnected from a Matrox DS1 docking station.
Signed-off-by: Rafael J. Wysocki Acked-by: Michael Chan Signed-off-by: David S. Miller
commit 7260899bde50cbe84bdf0a15b5642e2c3b03db32 Author: Ben Hutchings Date: Mon Nov 18 22:59:43 2013 +0000
tg3: Implement the SIOCGHWTSTAMP ioctl
While we're doing this, fix the error code for SIOCSHWTSTAMP ioctl on non-timestamping hardware.
Compile-tested only.
Signed-off-by: Ben Hutchings
commit 58b187c68d91b54b82f6fd267ee3346ed8770655 Author: Ben Hutchings Date: Thu Nov 14 00:40:56 2013 +0000
tg3: Validate hwtstamp_config completely before applying it
tg3_hwtstamp_ioctl() should validate all fields of hwtstamp_config before making any changes. Currently it sets the TX configuration before validating the rx_filter field.
Compile-tested only.
Signed-off-by: Ben Hutchings Acked-by: Nithin Nayak Sujir Signed-off-by: David S. Miller
commit 85aec73d595b8847f9c4ea571deb127913f0d508 Author: Ivan Vecera Date: Wed Nov 6 14:02:36 2013 +0100
tg3: avoid double-freeing of rx data memory
If build_skb fails the memory associated with the ring buffer is freed but the ri->data member is not zeroed in this case. This causes a double-free of this memory in tg3_free_rings->... path. The patch moves this block after setting ri->data to NULL. It would be nice to fix this bug also in stable >= v3.4 trees.
Cc: Nithin Nayak Sujir Cc: Michael Chan Signed-off-by: Ivan Vecera Acked-by: Michael Chan Signed-off-by: David S. Miller
commit d458cdf712e0c671e8e819abb16ecd6e44f9daec Author: Joe Perches Date: Tue Oct 1 19:04:40 2013 -0700
net:drivers/net: Miscellaneous conversions to ETH_ALEN
Convert the memset/memcpy uses of 6 to ETH_ALEN where appropriate.
Also convert some struct definitions and u8 array declarations of [6] to ETH_ALEN.
Signed-off-by: Joe Perches Acked-by: Arend van Spriel Signed-off-by: David S. Miller
tg3: add support a phy at an address different than 01
When phylib was in use tg3 only searched at address 01 on the mdio bus and did not work with any other address. On the BCM4705 SoCs the switch is connected as a PHY behind the MAC driven by tg3 and it is at PHY address 30 in most cases. This is a preparation patch to allow support for such switches.
phy_addr is set to TG3_PHY_MII_ADDR for all devices, which are using phylib, so this should not change any behavior.
Signed-off-by: Hauke Mehrtens Acked-by: Nithin Nayak Sujir Signed-off-by: David S. Miller
Commit 989038e217e94161862a959e82f9a1ecf8dda152 ("tg3: Don't turn off led on 5719 serdes port 0") added code to skip turning led off on port 0 of the 5719 since it powered down other ports. This workaround needs to be enabled on the 5720 as well.
Cc: stable@vger.kernel.org Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
commit ede23fa8161c1a04aa1b3bf5447812ca14b3fef1 Author: Joe Perches Date: Mon Aug 26 22:45:23 2013 -0700
drivers:net: Convert dma_alloc_coherent(...__GFP_ZERO) to dma_zalloc_coherent
__GFP_ZERO is an uncommon flag and perhaps is better not used. static inline dma_zalloc_coherent exists so convert the uses of dma_alloc_coherent with __GFP_ZERO to the more common kernel style with zalloc.
Remove memset from the static inline dma_zalloc_coherent and add just one use of __GFP_ZERO instead.
Trivially reduces the size of the existing uses of dma_zalloc_coherent.
Realign arguments as appropriate.
Signed-off-by: Joe Perches Acked-by: Neil Horman Acked-by: Jesse Brandeburg Acked-by: Jeff Kirsher Signed-off-by: David S. Miller
While EEH error happens, we might not have network device instance (struct net_device) yet. So we can't access the instance safely and check its link state, which causes kernel crash. The patch fixes it.
EEH: Frozen PE#2 on PHB#3 detected EEH: This PCI device has failed 1 times in the last hour EEH: Notify device drivers to shutdown (NULL net_device): PCI I/O error detected Unable to handle kernel paging request for data at address 0x00000048 Faulting instruction address: 0xd00000001c9387a8 Oops: Kernel access of bad area, sig: 11 [#1] SMP NR_CPUS=1024 NUMA PowerNV : NIP [d00000001c9387a8] .tg3_io_error_detected+0x78/0x2a0 [tg3] LR [d00000001c9387a4] .tg3_io_error_detected+0x74/0x2a0 [tg3] Call Trace: [c000003f93a0f960] [d00000001c9387a4] .tg3_io_error_detected+0x74/0x2a0 [tg3] [c000003f93a0fa30] [c00000000003844c] .eeh_report_error+0xac/0x120 [c000003f93a0fac0] [c0000000000371bc] .eeh_pe_dev_traverse+0x8c/0x150 [c000003f93a0fb60] [c000000000038858] .eeh_handle_normal_event+0x128/0x3d0 [c000003f93a0fbf0] [c000000000038db8] .eeh_handle_event+0x2b8/0x2c0 [c000003f93a0fc90] [c000000000038e80] .eeh_event_handler+0xc0/0x170 [c000003f93a0fd30] [c0000000000cc000] .kthread+0xf0/0x100 [c000003f93a0fe30] [c00000000000a0dc] .ret_from_kernel_thread+0x5c/0x80
Reported-by: Wei Yang Signed-off-by: Gavin Shan Acked-by: Nithin Nayak Sujir Signed-off-by: David S. Miller
Turning off led on port 0 of the 5719 serdes causes all other ports to lose power and stop functioning. Add tg3_phy_led_bug() function to check for this condition. We use a switch() in tg3_phy_led_bug() for consistency with the tg3_phy_power_bug() function.
Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
commit 6829309926b90c4c32d1f4cafeb600cd34a721e3 Author: Daniel Borkmann Date: Tue Aug 13 11:45:13 2013 -0700
net: tg3: fix NULL pointer dereference in tg3_io_error_detected and tg3_io_slot_reset
Commit d8af4dfd8 ("net/tg3: Fix kernel crash") introduced a possible NULL pointer dereference in tg3 driver when !netdev || !netif_running(netdev) condition is met and netdev is NULL. Then, the jump to the 'done' label calls dev_close() with a netdevice that is NULL. Therefore, only call dev_close() when we have a netdevice, but one that is not running.
[ Add the same checks in tg3_io_slot_reset() per Gavin Shan - by Nithin Nayak Sujir ]
Reported-by: Dave Jones Signed-off-by: Daniel Borkmann Cc: Gavin Shan Cc: Michael Chan Signed-off-by: Nithin Nayak Sujir Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
The 5762 devices sometimes incorrectly treat udp fragments as RMCP packets and route to the APE. This patch sets the RX_MODE_IPV4_FRAG_FIX bit for these devices which enables the proper behaviour.
Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
The PTP_CAPABLE tg3 devices have a gpio output that is toggled when the free running counter matches a watchdog value. This patch adds support to set the watchdog and enable this feature.
Since the output is controlled via bits in the EAV_REF_CLCK_CTL register, we have to read-modify-write it when we stop/resume.
Cc: Richard Cochran Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
tg3: Allow NVRAM programming when interface is down
Previously, when the interface was brought down, the driver would set the power state to D3hot. In D3hot, we don't have access to the NVRAM. This patch removes the call to set the power state to PCI_D3hot in close. A following patch will implement the shutdown handler to properly set the D3hot state when the system is going down.
Doing the above means that the TG3_PHYFLG_IS_LOW_POWER should not be checked to validate access to the NVRAM.
Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
During probe, the driver is incorrectly switching the power to Vaux on the 5717 and later devices. At this point, we are in D0 state and drawing maximum power. We also definitely have Vmain available. It doesn't make sense to switch to Vaux since it has a lesser maximum power draw and we might go over the limit. On a new system, we observe that not all ports are recognized in some of the slots with this call in place.
Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
When the EEH error is the result of a fenced host bridge, MMIO accesses can be very slow (milliseconds) to timeout and return all 1's, thus causing the driver various timeout loops to take way too long and trigger soft-lockup warnings (in addition to taking minutes to recover).
It might be worthwhile to check if for any of these cases, ffffffff is a valid possible value, and if not, bail early since that means the HW is either gone or isolated. In the meantime, checking that the PCI channel is offline would be workaround of the problem.
Cc: # v3.0+ Signed-off-by: Gavin Shan Signed-off-by: David S. Miller
commit 72bb72b0d98847d22c6fae4e170121f3640f0f60 Author: Michael Chan Date: Mon Jun 17 13:47:25 2013 -0700
tg3: Prevent system hang during repeated EEH errors.
The current tg3 code assumes the pci_error_handlers to be always called in sequence. In particular, during ->error_detected(), NAPI is disabled and the device is shutdown. The device is later reset and NAPI re-enabled in ->slot_reset() and ->resume().
In EEH, if more than 6 errors are detected in a hour, only ->error_detected() will be called. This will leave the driver in an inconsistent state as NAPI is disabled but netif_running state is still true. When the device is later closed, we'll try to disable NAPI again and it will loop forever.
We fix this by closing the device if we encounter any error conditions during the normal sequence of the pci_error_handlers.
v2: Remove the changes in tg3_io_resume() based on Benjamin Poirier's feedback.
Signed-off-by: Michael Chan Signed-off-by: Nithin Nayak Sujir Signed-off-by: David S. Miller
Some systems that don't need wake-on-lan may choose to power down the chip on system standby. Upon resume, the power on causes the boot code to startup and initialize the hardware. On one new platform, this is causing the device to go into a bad state due to a race between the driver and boot code, once every several hundred resumes. The same race exists on open since we come up from a power on.
This patch adds a wait for boot code signature at the beginning of tg3_init_hw() which is common to both cases. If there has not been a power-off or the boot code has already completed, the signature will be present and poll_fw() returns immediately. Also return immediately if the device does not have firmware.
Cc: stable@vger.kernel.org Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
Commit 091f0ea30074bc43f9250961b3247af713024bc6 "tg3: Add New 5719 Read DMA workaround" added a workaround for TX DMA stall on the 5719. This workaround needs to be applied to the 5720 as well.
Cc: stable@vger.kernel.org Reported-by: Roland Dreier Tested-by: Roland Dreier Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
The current code calls tg3_set_bdinfo() separately on napi0, followed by a loop that does napi1+. Simplify it by setting bdinfo in the loop for all napi contexts.
Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
tg3: Split APE driver state change out of boot reset signature update
Unlike the boot signature that needs to be set before every reset, the ape state only needs to be updated to tell the firmware that the driver is now taking/releasing control of the hardware. Move the calls to tg3_ape_driver_state_change() to better, more appropriate places.
Also, the firmware does not distinguish between SUSPEND and START states anymore. Remove the SUSPEND case in the switch.
Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
tg3: Ensure boot code has completed initialization before accessing hardware
After resetting the device, the driver waits for a signature to be updated to know that firmware has completed initialization. However, the call to tg3_poll_fw() is being done too late and we're writing to the GRC_MODE register before it has completely initialized, causing contention with firmware. This logic has existed since day one but is causing PCIE link to go down randomly at startup on one platform once every few hundred reboots.
Move the tg3_poll_fw() up to before we write to the GRC_MODE register after reset.
Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
commit 1cbf9eb85a6601b58f01a71ff10299d2bf5d3365 Author: Nithin Sujir Date: Sat May 18 06:26:55 2013 +0000
tg3: Implement set/get_eee handlers
Reviewed-by: Ben Li Signed-off-by: Michael Chan Signed-off-by: Nithin Nayak Sujir Signed-off-by: David S. Miller
commit 5b6c273ad6c3886f30c7c5df7009e489043c59f3 Author: Nithin Sujir Date: Sat May 18 06:26:54 2013 +0000
tg3: Simplify tg3_phy_eee_config_ok() by reusing tg3_eee_pull_config()
eee_config_ok() was checking only for mismatch in advertised settings. This patch expands the scope of eee_config_ok() to check for mismatch in the other eee settings. On mismatch we will require a call to tg3_setup_eee() to push the configured settings to the hardware.
Reviewed-by: Ben Li Signed-off-by: Michael Chan Signed-off-by: Nithin Nayak Sujir Signed-off-by: David S. Miller
commit 400dfbaa8d444a29056b051a3d7082dc611e3b12 Author: Nithin Sujir Date: Sat May 18 06:26:53 2013 +0000
tg3: Add tg3_eee_pull_config() function
Add tg3_eee_pull_config() to pull the settings from the hardware and populate the eee structure.
If Link Flap Avoidance is enabled, we pull the eee settings from the hw so as not to cause a phy reset on eee config mismatch later. This requires moving down tg3_setup_eee() below the tg3_pull_config() to not trample existing settings.
Reviewed-by: Ben Li Signed-off-by: Michael Chan Signed-off-by: Nithin Nayak Sujir Signed-off-by: David S. Miller
commit 9e2ecbeb250dee67f4bd06a18637c120b48a4865 Author: Nithin Sujir Date: Sat May 18 06:26:52 2013 +0000
tg3: Add ethtool_eee struct and tg3_setup_eee()
Add an eee structure and update it with eee settings. This will be used for set/get_eee operations. Add common function tg3_setup_eee() that will be used in the subsequent patches.
Reviewed-by: Ben Li Signed-off-by: Michael Chan Signed-off-by: Nithin Nayak Sujir Signed-off-by: David S. Miller
The commit f233a976ad15c3b8c54c0157f3c41d23f7514279 (tg3: shows HW time stamping support only if ptp_capable is present) didn't append hardware flags correctly. This patch fixes it.
Signed-off-by: Flavio Leitner Signed-off-by: David S. Miller
net: vlan: add protocol argument to packet tagging functions
Add a protocol argument to the VLAN packet tagging functions. In case of HW tagging, we need that protocol available in the ndo_start_xmit functions, so it is stored in a new field in the skb. The new field fits into a hole (on 64 bit) and doesn't increase the sks's size.
Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller
net: vlan: rename NETIF_F_HW_VLAN_* feature flags to NETIF_F_HW_VLAN_CTAG_*
Rename the hardware VLAN acceleration features to include "CTAG" to indicate that they only support CTAGs. Follow up patches will introduce 802.1ad server provider tagging (STAGs) and require the distinction for hardware not supporting acclerating both.
Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller
tg3: Reset the phy to allow modified EEE settings to take effect
When LFA is enabled, we don't reset the phy. But EEE settings changes don't take effect until the phy is reset. Add a phy reset when we detect a changed EEE setting.