=============================================================================== Emulex FC/FCoE Device Driver for Linux ===============================================================================
Device Driver Version: 10.3.135.0 Supported On: Flex
Problems Fixed: - Error recovery of a "hung" IO to a device is cancelling ALL IOs, not just the culprit one only - A NULL pointer dereference kernel panic occurs in lpfc_target_reset_handler()
Incremental Interoperability: - SLES 12 - RHEL 6.6, 7.1 - Lenovo branded versions of formerly IBM branded products
Device Driver Version: 10.2.375.0 Supported On: IBM System x and BladeCenter
Problems Fixed: - ELS txcmplq list corruption cause crash during error injection - Cleaned up several issues around ExpressLane feature - Need a HAL workaround for upgrading 10.0 XE102/XE104 f/w to 10.2 - I/O hang on RHEL6.5 for small block (4K) random i/o on POWER8
Device Driver Version: 10.0.800.0 Supported On: IBM System x
Problems Fixed: - Low bi-di throughput seen on 1g ports of HS-23 LOM - Multiple performance improvements - Bonding driver takes approx 20 seconds to be ready
Incremental Interoperability: - RHEL 5.10 - RHEL 6.5 - XE-102 and XE-104 ASIC (OCx14xxx) - Support for set and get channels ethtool operation
Known Issues: - SR-IOV is supported with the following Linux distributions: * RHEL 6.4 and above 64-bit with KVM * SLES11 SP3 and above 64-bit with KVM
NOTE: Guest operating system support is dependent on the Emulex driver version installed in the guest.
Device Driver Version: 8.3.7.27 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
Device Driver Version: 8.3.7.18 Supported On: IBM System x and 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
Device Driver Version: 8.3.6.4 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
Device Driver Version: 8.3.5.86 Supported On: IBM System x and 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
Device Driver Version: 8.3.5.74 Supported On: IBM System x, BladeCenter, and 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
Device Driver Version: 8.3.5.66 Supported On: IBM System x, BladeCenter, and 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
Firmware Version: 2.02x11 Boot Code Version: 5.30a6 Supported On: System x, BladeCenter and Flex
Problems Fixed: - SAN boot stopped working after firmware/boot BIOS upgrade
Incremental Interoperability: - Lenovo branded versions of formerly IBM branded products
Known Issues: - To disable BFS after BOFM or IFM have been enabled, it must be done by setting BFS manually in the EFIBoot config utility or sending a BOFM default command to the port. This is working as expected and we are documenting it here.(159225)
Firmware Version: 2.02x11 Boot Code Version: 5.30a3 Supported On: System x, BladeCenter and Flex
Problems Fixed: - None
Incremental Interoperability: - Grantley based ITE
Known Issues: - To disable BFS after BOFM or IFM have been enabled, it must be done by setting BFS manually in the EFIBoot config utility or sending a BOFM default command to the port. This is working as expected and we are documenting it here.(159225)
Firmware Version: 2.02x11 Boot Code Version: 5.30a3 Supported On: System x and BladeCenter
Problems Fixed: - Roll boot code version number to avoid conflict with IBM UXSPi updates
Incremental Interoperability: - Inventory support for the System x xHMC (Chassis Hardware Management Console) for IBM Rack FC HBAs - Grantley Rack Servers
Known Issues: - To disable BFS after BOFM or IFM have been enabled, it must be done by setting BFS manually in the EFIBoot config utility or sending a BOFM default command to the port. This is working as expected and we are documenting it here.(159225)
Firmware Version: 2.02x11 Boot Code Version: 5.13x4 Supported On: IBM System x, BladeCenter, and Flex
Problems Fixed: - Server intermittently fails to boot during rolling SANboot (any OS) - Fixed a boot hang associated with server BIOS change
Incremental Interoperability: - Inventory support for the Flex xHMC (Chassis Hardware Management Console)
Known Issues: - To disable BFS after BOFM or IFM have been enabled, it must be done by setting BFS manually in the EFIBoot config utility or sending a BOFM default command to the port. This is working as expected and we are documenting it here.(159225)
Firmware Version: 2.01a11 Boot Code Version: 5.12a13 Supported On: IBM System x and 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 Boot Code Version: 5.12a5 Supported On: IBM System x and BladeCenter
Incremental Interoperability: - 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.
=============================================================================== Emulex NIC Device Driver for Linux ===============================================================================
Device Driver Version: 10.3.142.0 Supported On: Flex
Problems Fixed: - None
Incremental Interoperability: - SLES 12 - RHEL 6.6, 7.1 - Lenovo branded versions of formerly IBM branded products
Device Driver Version: 10.2.363.0 Supported On: System x and BladeCenter
Problems Fixed: - Multiple performance improvements in virtualized environments (SR-IOV,UMC) - Resetting Transparent Vlan to Default Vlan is not working - Cleanup ethtool set settings code - ARI on IBM x3650M4: All functions are not displayed in Linux
Device Driver Version: 10.2.261.0 Supported On: IBM System x, BladeCenter, and Flex
Problems Fixed: - Provide link state control for VFs - ethtool shows port as fibre though copper cable is connected. - Multi channel config should be determined via port resource descriptor - Showing WoL supported in ethtool for BE3 where it is not supported - be2net driver crash when umc enabled - ip link show command shows vlan for vfs although vlan creation is failed on the vfs - Emulex be2net driver does not support IOMMU pass through mode
Device Driver Version: 10.0.800.0 Supported On: IBM System x
Problems Fixed: - Low bi-di throughput seen on 1g ports of HS-23 LOM - Multiple performance improvements - Bonding driver takes approx 20 seconds to be ready
Incremental Interoperability: - RHEL 5.10 - RHEL 6.5 - XE-102 and XE-104 ASIC (OCx14xxx) - Support for set and get channels ethtool operation
Known Issues: - SR-IOV is supported with the following Linux distributions: * RHEL 6.4 and above 64-bit with KVM * SLES11 SP3 and above 64-bit with KVM
NOTE: Guest operating system support is dependent on the Emulex driver version installed in the guest.
Device 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: - SR-IOV is supported with the following Linux distributions: * RHEL 6.3 and 6.4 64-bit with KVM * SLES11 SP2 and SP3 64-bit with KVM
NOTE: Guest operating system support is dependent on the Emulex driver version installed 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 network interfaces.
Device Driver Version: 4.6.148.0 Supported On: IBM System x and 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
Device Driver Version: 4.4.180.0 Supported On: IBM Flex
Device Driver Version: 4.2.389.0 Supported On IBM System x and 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
Device Driver Version: 4.1.413.0 Supported On: IBM System x and 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
Device Driver Version: 4.1.334.39 Supported On: IBM System x and BladeCenter
Problems Fixed: - 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
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)
Supported Kernels: SLES 12 3.12.28.4
NOTE TO SERVICE - Reference RETAIN #N/A
Version 6.808.14.00 - Initial release -------------------
Firmware Version: 2.02x11 Boot Code Version: 5.30a6 Supported On: System x, BladeCenter and Flex
Problems Fixed: - SAN boot stopped working after firmware/boot BIOS upgrade
Incremental Interoperability: - Lenovo branded versions of formerly IBM branded products
Known Issues: - To disable BFS after BOFM or IFM have been enabled, it must be done by setting BFS manually in the EFIBoot config utility or sending a BOFM default command to the port. This is working as expected and we are documenting it here.(159225)
Firmware Version: 2.02x11 Boot Code Version: 5.30a3 Supported On: System x, BladeCenter and Flex
Problems Fixed: - None
Incremental Interoperability: - Grantley based ITE
Known Issues: - To disable BFS after BOFM or IFM have been enabled, it must be done by setting BFS manually in the EFIBoot config utility or sending a BOFM default command to the port. This is working as expected and we are documenting it here.(159225)
Firmware Version: 2.02x11 Boot Code Version: 5.30a3 Supported On: System x and BladeCenter
Problems Fixed: - Roll boot code version number to avoid conflict with IBM UXSPi updates
Incremental Interoperability: - Inventory support for the System x xHMC (Chassis Hardware Management Console) for IBM Rack FC HBAs - Grantley Rack Servers
Known Issues: - To disable BFS after BOFM or IFM have been enabled, it must be done by setting BFS manually in the EFIBoot config utility or sending a BOFM default command to the port. This is working as expected and we are documenting it here.(159225)
Firmware Version: 2.02x11 Boot Code Version: 5.13x4 Supported On: IBM System x, BladeCenter, and Flex
Problems Fixed: - Server intermittently fails to boot during rolling SANboot (any OS) - Fixed a boot hang associated with server BIOS change
Incremental Interoperability: - Inventory support for the Flex xHMC (Chassis Hardware Management Console)
Known Issues: - To disable BFS after BOFM or IFM have been enabled, it must be done by setting BFS manually in the EFIBoot config utility or sending a BOFM default command to the port. This is working as expected and we are documenting it here.(159225)
Firmware Version: 2.01a11 Boot Code Version: 5.12a13 Supported On: IBM System x and 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 Boot Code Version: 5.12a5 Supported On: IBM System x and BladeCenter
Incremental Interoperability: - 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.
=============================================================================== Emulex iSCSI Device Driver for Linux ===============================================================================
Device Driver Version: 10.3.139.0 Supported On: Flex
Problems Fixed: - None
Incremental Interoperability: - SLES 12 - RHEL 6.6, 7.1 - Lenovo branded versions of formerly IBM branded products
Device Driver Version: 10.2.365.0 Supported On: System x and BladeCenter
Problems Fixed: - be2iscsi rpm is failing with dependencies error - Unable to iSCSI SAN install RHEL/SLES/WIN2012R2 with UFP - Server is getting rebooted when we run IPv4+IPv6 bi-di NIC traffic simultaneously on UMC enabled interfaces
Device Driver Version: 10.2.261.1 Supported On: IBM System x, BladeCenter, and Flex
Problems Fixed: - Write error while running traffic - System crashed after running converged IO with driver load unload in a - Possible backlog of eq might happen if _process_cq keep processing for a long time: causes fw UE - Driver memory leak resulting in "DMA: Out of SW-IOMMU space" errors in dmesg file output
Device Driver Version: 10.0.803.21 Supported On: IBM System x
Problems Fixed: - Unable to OEMSEAddTarget or OEMSEDiscoverTaget successfully and get entries in mili2d.log - Emulex drivers are not working on RHEL5 and RHEL6 errata kernel updates - IO Read/Write almost halts with 'DMA: Out of SW IOMMU space' messages while running iSCSI Multipath I/O
Device Driver Version: 4.4.175.0 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 be1iscsi driver running
Device Driver Version: 4.1.402.0 Supported On: IBM System x and 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
Device Driver Version 4.1.334.39 Supported On: IBM System x and BladeCenter
Problems Fixed: - Emulex: Warning messages seen while building Emulex drivers on RHEL platform - Unable to load be1iscsi driver during iSCSI boot OS install - Modprobe be1iscsi hangs when system with max targets login - be1iscsi 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
tg3: Modify tg3_tso_bug() to handle multiple TX rings
tg3_tso_bug() was originally designed to handle only HW TX ring 0, Commit d3f6f3a1d818410c17445bce4f4caab52eb102f1 ("tg3: Prevent page allocation failure during TSO workaround") changed the driver logic to use tg3_tso_bug() for all HW TX rings that are enabled. This patch fixes the regression by modifying tg3_tso_bug() to handle multiple HW TX rings.
Signed-off-by: Prashant Sreedharan Signed-off-by: Michael Chan Signed-off-by: David S. Miller
Commit 506724c463fcd63477a5e404728a980b71f80bb7 "tg3: Override clock, link aware and link idle mode during NVRAM dump" changed the timeout value for nvram command execution from 100ms to 1ms. But the 1ms timeout value was only sufficient for nvram read operations but not write operations for most of the devices supported by tg3 driver. This patch sets the MAX to 50ms. Also it uses usleep_range instead of udelay.
Signed-off-by: Prashant Sreedharan Signed-off-by: Michael Chan Suggested-by: David Miller Signed-off-by: David S. Miller
tg3: Clear NETIF_F_TSO6 flag before doing software GSO
Commit d3f6f3a1d818410c17445bce4f4caab52eb102f1 ("tg3: Prevent page allocation failure during TSO workaround") modified driver logic to use tg3_tso_bug() for any TSO fragment that hits hardware bug conditions thus the patch increased the scope of work for tg3_tso_bug() to cover devices that support NETIF_F_TSO6 as well. Prior to the patch, tg3_tso_bug() would only be used on devices supporting NETIF_F_TSO.
A regression was introduced for IPv6 packets requiring the workaround. To properly perform GSO on SKBs with TCPV6 gso_type, we need to call skb_gso_segment() with NETIF_F_TSO6 feature flag cleared, or the function will return NULL and cause a kernel oops as tg3 is not handling a NULL return value. This patch fixes the problem.
Signed-off-by: Prashant Sreedharan Signed-off-by: Michael Chan Signed-off-by: David S. Miller
commit 014b20133bcd442db554c2d2d86181b34cd15b66 commit 506724c463fcd63477a5e404728a980b71f80bb7 Author: Prashant Sreedharan Date: Sat May 24 01:32:09 2014 -0700
tg3: Override clock, link aware and link idle mode during NVRAM dump
When cable is not present the clock speed of some of the devices is reduced based upon power saving mode setting in NVRAM. Due to this NVRAM reads take long time to complete as a result CPU soft lockup message is seen. Fix is to override clock, disable link aware and link idle modes before NVRAM reads and restore them back after the reads are complete. During this period also check if the thread needs to be rescheduled and if there are any signals to handle.
Also decrease the NVRAM command execution timeout value to 1ms.
Signed-off-by: Prashant Sreedharan Signed-off-by: Michael Chan Signed-off-by: David S. Miller
commit de750e4c4bf36b8a14401527e6541e8620ea6267 Author: Michael Chan Date: Sun May 11 20:22:55 2014 -0700
tg3: Update copyright and version to 3.137
Signed-off-by: Michael Chan Signed-off-by: David S. Miller
commit d3f6f3a1d818410c17445bce4f4caab52eb102f1 Author: Michael Chan Date: Sun May 11 20:22:54 2014 -0700
tg3: Prevent page allocation failure during TSO workaround
If any TSO fragment hits hardware bug conditions (e.g. 4G boundary), the driver will workaround by calling skb_copy() to copy to a linear SKB. Users have reported page allocation failures as the TSO packet can be up to 64K. Copying such a large packet is also very inefficient. We fix this by using existing tg3_tso_bug() to transmit the packet using GSO.
Signed-off-by: Prashant Sreedharan Signed-off-by: Michael Chan Signed-off-by: David S. Miller
commit d71c0dc4e961e74143a644f248fc1a39cabf6586 Author: Michael Chan Date: Sun May 11 20:22:53 2014 -0700
tg3: Don't modify ip header fields when doing GSO
tg3 uses GSO as workaround if the hardware cannot perform TSO on certain packets. We should not modify the ip header fields if we do GSO on the packet. It happens to work by accident because GSO recalculates the IP checksum and IP total length.
Also fix the tg3_start_xmit comment to reflect that this is the only xmit function for all devices.
Signed-off-by: Prashant Sreedharan Signed-off-by: Michael Chan Signed-off-by: David S. Miller
tg3: Do not include vlan acceleration features in vlan_features
Including hardware acceleration features in vlan_features breaks stacked vlans (Q-in-Q) by marking the bottom vlan interface as capable of acceleration. This causes one of the tags to be lost and the packets are sent with a sing vlan header.
CC: Nithin Nayak Sujir CC: Michael Chan Signed-off-by: Vlad Yasevich Signed-off-by: David S. Miller
commit d7b95315cc7f441418845a165ee56df723941487 Author: Michael Chan Date: Fri Feb 28 15:05:10 2014 -0800
tg3: Don't check undefined error bits in RXBD
Redefine the RXD_ERR_MASK to include only relevant error bits. This fixes a customer reported issue of randomly dropping packets on the 5719.
Signed-off-by: Michael Chan Signed-off-by: David S. Miller
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.