=============================================================================== Emulex 16GB FC Firmware Package ===============================================================================
Firmware Version: 10.4.303.3 Supported On: System x Rack
Problems Fixed: - VF speed is showing wrongly in ethtool and Ocm. - Firmware download using ethtool -f command is failing with opcode 172-1 failed:status 100-208 - Can not set the DelayDeviceDiscovery to Max (255) by ASU tool - Ports intermittently logging in to Brocade switch as G-Port
Incremental Interoperability: - xHMC event notifications on specific platforms (requires minimum IMM version-please consult Lenovo on the co-requisite) - 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.(159504)
Problems Fixed: - Blue screen after firmware flash to with virtualized WWPN
Incremental Interoperability: - xHMC event notifications on specific platforms (requires minimum IMM version-please consult Lenovo on the co-requisite) - 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.(159504)
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.(159504)
Firmware Version: 10.2.377.18 Supported On: System x
Problems Fixed: - Link does not recover during IO + Port Cycling with FW 1.1.43.3 - BIOS versions return multiple values - LPe16k point to point (direct attached) connection not bootable in legacy BIOS - LPe16k point to point (direct attached) connection performance issues in legacy BIOS
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.(159504)
Firmware Version: 10.2.261.36 Supported On: IBM System x and Flex
Problems Fixed: - Server will halt on black screen during rolling reboot of Windows 2012 x64 uEFI SANboot - Server intermittently fails to boot during rolling SANboot (any OS) - Fixed a boot hang associated with server BIOS change - Reported firwmare version in CMM is intermittently incorrect - Unable to set pause Flow control when connected to DCBX switch with PFC off - during cable pull testing a 40 second delay in link up experienced with Brocade switch ports - I/O completion and abort completion WQE are generated out of order - Unexpected WCQE in RQ CQ seen in RXRI mode while performing cable pulls
Incremental Interoperability: - Inventory support for the Flex xHMC (Chassis Hardware Management Console) - Crosslink & Express Lane on LPe16k based solutions
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.(159504)
Firmware Version: 1.1.43.21 Supported On: IBM System x
Incremental Interoperability: - None
Problems Fixed: - Server will halt on black screen during UEFI rolling reboot reboot cycle test with 16Gb HBA under Windows 2012 x64 - Allows installing and booting from an MSA2040 array configured in PT-PT direct mode at 16G speed. We're now able to enable Autoscan and install/boot from multiple OSes - Added support to bypass configuring pnp Boot Table in a multipath situation. Fixes Microsoft Windows Server 2008 bug. - Fixed the "Read Rev Failure" issue during POST to accept "0" address value as a valid. - Fixed the wrong VPD HBA model number display on the banner and properties, and change the proper VPD data field size. - Fixed the timeout issue on Flogi when try to select a HBA device without connecting to a target or FC switch. - System will halt during reboot cycle test under Windows 2012 x64 UEFI - Fixing PCI Function Number decoding issue in BOFM code - Boot fails during SLES11 SP3 rolling reboot - Enable BFS and update the NVRAM if BOFM target is available - Add Diagnostic support for UEFI 16Gb FC - Reconnect menu item causes a System BIOS exit request only on AMI core system BIOS - Adding port's protocol name and WWPN in browser help menu
Firmware Version: 1.1.43.12 Supported On: IBM System x and Flex
Incremental Interoperability: - IBM Flex System FC5052 2-port 16Gb FC Adapter - IBM Flex System FC5054 4-port 16Gb FC Adapter - FC support for support for ASU/Config Patterns for Flex and ASU for IBM System x & BladeCenter - Direct PT - PT connections - Extended SCSI Pass Thru Protocol - IBM Tape unit interoperability - see SSIC for more information - SLES 11.3 on IBM System x
Problems Fixed: - Windows 2012 OS will not resume from Sleep mode - Boot Device entries can be lost after exiting from BIOS setup
Firmware Version: 1.1.21.9 Supported On: IBM System x
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 SMP passthrough command failure due to smp back off interrupt. Appears in system log as 0x311c0030. (SCGCQ00889925) - Fixed issue where host boot fails in the presence of blank flash/corrupt firmware in flash (SCGCQ00894439) - Fixed issue where SATA drive errors, bad performance, or boot failure may appear after update to 20.00.02.00 firmware (SCGCQ00859226)(Retain Tip# H015210)
Version 1.20.01 - Moderate Impact/Low Probablility of Occurrence ------------- Contains: BIOS Firmware UEFI Driver 7.39.00.00 20.00.03.00 7.27.04.00
- Fixed an issue seen with RAID 10 array where during a warm OS boot, certain drive models with a long spin up delay may get marked as failed for being unresponsive. This delay ultimately triggers a rebuild of the array.
Fixes: - Fixed an issue where 4k sector size drives with 512e reporting enabled show wrong physical size when running a read capacity 16 command. - Fixed an issue where speed negotiation for 3Gig SATA drives is not handled properly. - Added Support for Report Luns Command - Fixed an issue where OS hang during install of Linux system to a SSD - Fixed an issue where SAS device page 0 may still be present for Initiator devices that have been removed from the topology. - Fixed an issue where RHEL 6.3 hangs during boot with IBM 600GB High IOPS MLC Modular Adapter - Fixed an issue where a non-PI volume made up of all PI capable drives, may come up as PI enabled after a controller reset. - Fixed an issue where a fault 0X8808 occurs when a reset is issued to the controller that has max number of active/inactive volumes - Fixed an issue where "Device Present" Flag of SAS device page0 is not set for initiator controller in then target controller when two controllers are connected to each other in initiator/target mode. - Fixed an issue where extended tags and PCIe upconfigure capability are disabled in SAS2208 and SAS2308. - Fixed an issue where force full discovery does not trigger rediscovery of an expander after the initial expander discovery fails. - Fixed an issue where single RAID0 volume activation was succeeding, even though controller does not support single drive RAID0. - Fixed an issue where RAID1 volume of Non-PI drives moves to optimal state when a PI drive is hotplugged and 'Enable PI mixing' not enabled. - Fixed an issue where Locate LED's stop automatically after 3-4 minutes before user issues command to turn off the Locate LED's. - Fixed an issue where fault 0x8618 is seen when a new volume is created in the presence of another volume which is undergoing resync along with IO. - Fixed an issue background initialization does not start on RAID0 volume with PI drives, after removing and reinserting a volume member.
BIOS - Fixed an issue where core BIOS displays warning message when it fails to add all of the drives connected to int13 chain, then waits for user to press any key to continue further, rather than continuing after 3 seconds. - Fixed an issue where incorrect adapter is being tagged as the first adapter found. - Fixed an issue where the save or discard changes prompt appears after a failed attempt to set volume as the boot device in BIOS CU. - Fixed an issue where BIOS CU provides incorrect device pointer when checking for raid disk to allow/disallow setting boot device. - Fixed an issue where device properties screen is invoked from a direct attach device using Alt+D in SAS topology screen, device traversing [Alt+N & Alt+P] is restricted within the direct attach device and expander attach devices are not traversed. - Fixed an issue where the drive status field does not show 'Max dsks' when trying to select 11th drive for RAID10 volume. - Fixed an issue maximum Int13 devices settings does not get honored, when the value is set as 0 in BIOS CU - Fixed an issue where drive size of 1.088GiB was showing as 1.880GiB. - Fixed an issue current boot device set to device at slot 4" message Not displaying for Adaptors with boot order other than 0. - Fixed an issue where the BIOS CU navigates to create new volume screen instead of back to raid properties screen. - Fixed an issue where BIOS banner showed 'FF' for slot information. - Fixed an issue where the drive's SMART status is always shown as no irrespective of drive's SMART status, under Pred Fail column of the manage hot spare screen and create new volume screen. - Fixed an issue where SAS2 BIOS: volume size shows inconsistent value in the create new volume' screen after selecting the last volume member. - Fixed an issue where a disabled adapter causes the second adapter status to show as unavailable even though the second adapter is enabled. Uefi Enhancement 1/2 - Added capability to create an IR RAID volume in non-PI mode, even when all member drives are PI Capable. - Added PI info and ability to control creation of PI Volume in UCM of BSD HII. - Added new form manage PHY settings to support enabling or disabling of a controller PH Fixes: - Fixed an issue view foreign volume option is disabled with a foreign volume in the configuration.
- 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.
- Fixed SMP passthrough command failure due to smp back off interrupt. Appears in system log as 0x311c0030. (SCGCQ00889925) - Fixed issue where host boot fails in the presence of blank flash/corrupt firmware in flash (SCGCQ00894439) - Fixed issue where SATA drive errors, bad performance, or boot failure may appear after update to 20.00.02.00 firmware (SCGCQ00859226)(Retain Tip# H015210)
Version 1.20.01 - Moderate Impact/Low Probablility of Occurrence ------------- Contains: BIOS Firmware UEFI Driver 7.39.00.00 20.00.03.00 7.27.04.00
- Fixed an issue seen with RAID 10 array where during a warm OS boot, certain drive models with a long spin up delay may get marked as failed for being unresponsive. This delay ultimately triggers a rebuild of the array.
Fixes: - Fixed an issue where 4k sector size drives with 512e reporting enabled show wrong physical size when running a read capacity 16 command. - Fixed an issue where speed negotiation for 3Gig SATA drives is not handled properly. - Added Support for Report Luns Command - Fixed an issue where OS hang during install of Linux system to a SSD - Fixed an issue where SAS device page 0 may still be present for Initiator devices that have been removed from the topology. - Fixed an issue where RHEL 6.3 hangs during boot with IBM 600GB High IOPS MLC Modular Adapter - Fixed an issue where a non-PI volume made up of all PI capable drives, may come up as PI enabled after a controller reset. - Fixed an issue where a fault 0X8808 occurs when a reset is issued to the controller that has max number of active/inactive volumes - Fixed an issue where "Device Present" Flag of SAS device page0 is not set for initiator controller in then target controller when two controllers are connected to each other in initiator/target mode. - Fixed an issue where extended tags and PCIe upconfigure capability are disabled in SAS2208 and SAS2308. - Fixed an issue where force full discovery does not trigger rediscovery of an expander after the initial expander discovery fails. - Fixed an issue where single RAID0 volume activation was succeeding, even though controller does not support single drive RAID0. - Fixed an issue where RAID1 volume of Non-PI drives moves to optimal state when a PI drive is hotplugged and 'Enable PI mixing' not enabled. - Fixed an issue where Locate LED's stop automatically after 3-4 minutes before user issues command to turn off the Locate LED's. - Fixed an issue where fault 0x8618 is seen when a new volume is created in the presence of another volume which is undergoing resync along with IO. - Fixed an issue background initialization does not start on RAID0 volume with PI drives, after removing and reinserting a volume member.
BIOS - Fixed an issue where core BIOS displays warning message when it fails to add all of the drives connected to int13 chain, then waits for user to press any key to continue further, rather than continuing after 3 seconds. - Fixed an issue where incorrect adapter is being tagged as the first adapter found. - Fixed an issue where the save or discard changes prompt appears after a failed attempt to set volume as the boot device in BIOS CU. - Fixed an issue where BIOS CU provides incorrect device pointer when checking for raid disk to allow/disallow setting boot device. - Fixed an issue where device properties screen is invoked from a direct attach device using Alt+D in SAS topology screen, device traversing [Alt+N & Alt+P] is restricted within the direct attach device and expander attach devices are not traversed. - Fixed an issue where the drive status field does not show 'Max dsks' when trying to select 11th drive for RAID10 volume. - Fixed an issue maximum Int13 devices settings does not get honored, when the value is set as 0 in BIOS CU - Fixed an issue where drive size of 1.088GiB was showing as 1.880GiB. - Fixed an issue current boot device set to device at slot 4" message Not displaying for Adaptors with boot order other than 0. - Fixed an issue where the BIOS CU navigates to create new volume screen instead of back to raid properties screen. - Fixed an issue where BIOS banner showed 'FF' for slot information. - Fixed an issue where the drive's SMART status is always shown as no irrespective of drive's SMART status, under Pred Fail column of the manage hot spare screen and create new volume screen. - Fixed an issue where SAS2 BIOS: volume size shows inconsistent value in the create new volume' screen after selecting the last volume member. - Fixed an issue where a disabled adapter causes the second adapter status to show as unavailable even though the second adapter is enabled. Uefi Enhancement 1/2 - Added capability to create an IR RAID volume in non-PI mode, even when all member drives are PI Capable. - Added PI info and ability to control creation of PI Volume in UCM of BSD HII. - Added new form manage PHY settings to support enabling or disabling of a controller PH Fixes: - Fixed an issue view foreign volume option is disabled with a foreign volume in the configuration.
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.
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.
IBM HBA/LSI 6GB and 12GB SAS/SATA/SSD Driver for SLES 12
NOTE TO SERVICE - Reference RETAIN N/A
Supported Controllers: - IBM N2125 SAS/SATA Controller (46C9011) - IBM N2115 SAS/SATA Controller (46C8989) - IBM 300 GB High IOPS MLC Modular Adapter (90Y4361) - IBM 600 GB High IOPS MLC Modular Adapter (90Y4365) - IBM 800 GB High IOPS MLC Modular Adapter (90Y4369) - IBM 300 GB High IOPS SLC Modular Adapter (90Y4373) - ServeRAID H1110 SAS/SATA Controller for IBM System x (81Y4492) - IBM 6Gb SAS HBA (46M0907) - IBM 6Gb SSD HBA (68Y7362) - Onboard LSI 2004 SAS
Supported Kernels: SLES 12 - 3.12.28-4
Version 20.00.00.00 - Initial Release -------------------
ibm_dd_mpt2sas_20_00_00_00_sles12_x86-64_chg
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.13.1-0254 --------------------
Version 20.13.1-0252 - Moderate Impact/Low Probability of Occurrence --------------------- Fixes: Fixed issue where wrong drive connector information (connector: null x0) shows in MSM (SCGCQ00996578) Fixed issue where firmware hit assertion while booting with 4K PDs. (SCGCQ00944388) Fixed system hangs that could occur due to recoverable errors being marked as unrecoverable (SCGCQ00923692) Fixed issue where exception would occur during foreign import while importing number of VDs greater than supported count (SCGCQ00931011)
Version 20.13.1-0245 - Moderate Impact/Low Probability of Occurrence --------------------- - Fixed an issue where virtual drivers become inconsistent after the system an AC failure. (SCGCQ00897229) - Fixed an issue where Illegal request sense messages are seen repeatedly in FW logs due to attempts to collect temperaure for pds which does not support page (0x2F) at every smart poll interval. (SCGCQ00898459) - Fixed an issue where command "cli set securitykey=Lsi@12345" fails with error code "1001" and error message "invalid key". - Added a warning message when preboot configuration utility is Disabled but the user tries to launch it. (SCGCQ00662761) - Fixed an issue where WebBIOS Advance software option menu from main page could hang the system. (SCGCQ00683327) - Updated the drive speed display string to support 12Gb/s (SCGCQ00751036) - Corrected inconsistency in size showing in for total capacity property between webBIOS and MSM (SCGCQ00752176)
Version 20.13.1-0200 - Critical ------------------- Enhancement: - Display drive speed for 12 GB Seagate hard drives in MSM. - List battery status in BIOS as N/A for iMR controllers Fixes: - Fixed an issue where the ‘cli set securitykey=Lsi@12345’ command fails with error code 1001 and error message invalid key. - Fixed an issue where WebBIOS advanced software option locks the server. - Changed patrol read completion time calculation to include time for associated IO operations. - Fixed SGPIOs signal issue.
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_13_1-0254_linux_32-64_chg
 Broadcom NetXtreme TG3 Linux Driver
Version 3.137n
Copyright (c) 2015 Broadcom Corporation All rights reserved
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.