- Fixed issue where acceptable indistro device drivers may not pass minium driver check. BIOS Changes Enhancement(s): - Core BIOS and BIOS configuration utility will display "FF" as the PCI slot number when proper slot information is not available. - Increased the disk drive spin-up timeout value to accommodate disk drives having larger spin up times.
Fix(es): - Fixed an issue where the adapter order does not get written to NVM and "Updating Adapter Order" displays on every reboot. - Fixed issue where zero sized volume was showing "4. 0 GiB." - Fixed issue where devices, which are not attached to adapter 0, could not be promoted to positions in the boot order when they were selected in the configuration utility. - Fixed an issue where IOS Banner(POST) not showing SAS Discovery error when more than one HBA is connected to the host system. - Fixed an issue where the SMART status is not correctly displayed for bare drives. - Fixed an issue in SAS topology where a RAID disk is highlighted and attempted to set as preferred boot device or alternate boot device, the configuration utility displays a SAVE/DISCARD prompt. - Fixed an issue where the firmware was showing a large elapsed time when a format operation crosses midnight in the system clock.
Firmware Changes Enhancement(s): - Added support for 4GB DIMM - Added the ability for user the enable/disable of the drive write cache during the BIOS start up.
Fix(es): - Fixed an issue where a request sense command, which is executed after a SATA drive is in active state is moved to idle power condition state, has no 'Additional Sense' information set. - Fixed an issue where protected information error "Logical block reference tag check failed" is received when an IR volume is deleted. - Fixed an issue Self-Test Results log page where values for update parameter code, format and linking, and parameter length are not recorded. - Fixed an issue sending vital product data inquiry with vital product data page set as invalid (0xFF) while diagnostic is running on a SATA drive results in segmentation fault 0x1901. - Fixed an issue where input/output is sent to SATA drives before the drives are ready. - Fixed an issue where fault 8405 was being hit while disabling and enabling the phy to which secondary drive is connected with IOs active. - Fixed an issue where subsequent commands sent to a SATA drive fail after a write same command failure until NCQ error handling is triggered or the device is reset. - Fixed an issue where Report Luns command sent to SATA drive fails if the drive is spun down. - Fixed an issue where hotspare does not resynch with second raid volume when both volumes are in degraded state. - Fixed an issue where incorrect sense data is populated when Security Protocol IN/OUT command is sent to supported drive. - Fixed an issue where allocation length for inquiry SCSI Command is not handled Properly during SATA Drive Format. - Fixed an issue during SATA drive format where vital product data inquiry command is executed for SATA drive with invalid page code, and the command is passed with no data instead for failing with CC and sense data. - Fixed an issue where the host will not indicate the existence of the expander attached drives if the direct attached device re-ordering feature is enabled. - Fixed an issue where protected information errors are observed on a RAID 1 volume its BGI is not completed, and its member physical disks are removed and inserted. - Fixed an issue where the TM response was set to failed if the device is missing due to the DO NOT SEND TASK IU flag being enabled. - Fixed an issue where DMD (Device Missing Delay) timer is not set to the default time when the total Report Device Missing Delay is greater than 0x7F seconds. - Fixed an issue where RAID1 volume fails to resynch when a new compatible bare drive is available in the primary drive slot. - Fixed an issue where error handling for errors, that cause the DMA engines to halt, are not handled properly and multithreaded IOs can hang if the same control block is used too soon. - Fixed an issue where a third hotspare is created even if the number of hotspares currently present in the RAID Configuration is 2. - Fixed an issue where inactive foreign volume information cannot be seen in SASBIOS when a native volume is deleted.
UEFI Changes Enhancement(s) - Additional information such as vendor id and product id added to the HII Create Configuration Screen. - Added ability to check to detect missing hotspares to HII. - Modified to be obtained PCI Slot Number information from the system firmware protected information. - Additional character "M" will be displayed as part of the device display identifier of a multipathed disk. - Ability in HII to detect missing hotspares and provide a facility to delete the missing hotspares. - Implemented Configuration Summary and Simple Virtual Disk Creation Support for Unified Configuration Management. - Modified UEFI driver to wait for a maximum of 10 seconds for the controller to become ready, so controller gets discovered in the OS.
Fix(es): - Fixed an issue where Enable/Disable write cache does not work for SAS drives. - Fixed an issue where HII Configuration utility does not allow the user to create a RAID0 with single disk present in the topology. - Fixed an issue in Create Configuration menu where additional drive information is not getting updated appropriately in HELP area. - Modified to prevent Write Cache settings options from appearing for the IR firmware. - Fixed an issue where SATA volume members and hotspare drives are labeled as 'M' in a multipathed environment. - Fixed an issue to prevent HII from allowing the option to enable/disable write cache for SATA drives. - Fixed an issue where multipathing is disabled in Manufacturing page settings, but volume members and hotspare drives are labeled as "M." - UEFI driver modified to check BIOS Options in order to determine if is should manage the controller.
Fixes: - Fixed issue where HII do not report Multi-LUN devices from external RAID enclosure. - Do not show external RAID LUNs in HII RAID configuration page. - Report NVDATA version consistently in Hex or Decimal. - Fixed issue where update will not install with the 09.101 megaraid_sas device driver.
Note: HII changes may not affect all controllers. Changes for the controller are based on RAID volume support. - HII fix to return EFI_SUCCESS when RETRIEVE Action is given in HII Callback function. - HII fix for Write cache disabling fails for SATA HDD/SSD connected to the IT controller. - HII fix for saved Controller Events Filename. - Behvioral change for the way a volume is created in HII.
Note: The following fixes only effect blade systems that support Bofm. - Fixed boot issues in Windows 2008 where after installation in uEFI the os will not boot due to the BuildDevicePath not allocating enough memory for the DevicePathreturned to caller. - Fixed issue with Bofm configurations where the BOFM supplied addresses for external/switch attach Phys are being assigned to the internal/direct attach Phys. - Fixed a Bofm issue where the SAS WWIDs not reverting to Man Page 5 Default when a Blade is moved back to non-BOFM slot.
Note: HII changes may not affect all controllers. Changes for the controller are based on RAID volume support.
- HII change to Remove Legacy BIOS Enable/Disable option. - Fixed issue where after creating a volume using SATA SSD the Associated Physical Disks always show up as SATA HDD. - Fixed issue where a hotspare could not be created for any volume in the HII browser. - HII fix for the View Physical Disk Properties form where the Serial number of SATA disks were being displaced with a space. - HII fix for the IR help strings displayed when using an IT controller. - Fixed HII issue where a 'Question value mismatch with Option value' error occurs when saying No for creating RAID10/RAID1E volume. - Fixed HII issue where help is not available when having only RAID0 and RAID1 levels in Create Configuration form. - Fixed a problem where the UEFI driver ATA PassThru Protocol is corrupt while trying to access the Mode field. - HII behavior change for 'Manage Foreign Configurations.' - HII change to provide proper extended RAID Levels in help messages based on supported extended RAID Levels.
ServeRAID M and MR10 Series SAS Controller Driver for Linux (also supports MegaRAID 8480 SAS Controller)
Adapters Supported: - ServeRAID M1215 SAS/SATA Controller for IBM System x (46C9114) - ServeRAID M5210e SAS/SATA Controller for IBM System x - ServeRAID M5210 SAS/SATA Controller - ServeRAID M5110 SAS/SATA Controller for IBM System x (81Y4481) - ServeRAID M5110e SAS/SATA Controller for IBM System x - IBM Flex System Storage Expansion Node - ServeRAID M5120 SAS/SATA Controller for IBM System x (81Y4478) - ServeRAID M5016 SAS/SATA Controller for IBM System x (90Y4304) - ServeRAID M5115 SAS/SATA Controller for IBM System x (90Y4390) - ServeRAID M5015 SAS/SATA controller (46M0829) - ServeRAID M5014 SAS/SATA controller (46M0916) - ServeRAID M1115 SAS/SATA Controller for IBM System X (81Y4448) - ServeRAID M1015 SAS/SATA Controller (46M0831) - IBM ServeRAID MR10il SAS controller (44E8767) - IBM ServeRAID MR10is SAS controller (44E8695) - IBM ServeRAID MR10ie (CIOv) SAS controller (46C7167) - IBM ServeRAID MR10i SAS controller (43W4296) - IBM ServeRAID MR10k SAS controller (43W4280) - IBM ServeRAID MR10M SAS controller (43W4339) - MegaRAID 8480 SAS controller (39R8850)
Version 6.602.03.00-1 - Suggested ------------------- Enhancement: - Add support for ServeRAID M1215 SAS/SATA Controller Fixes: - Fixed an issue where Kernel panic occurs due to timeout of MFI/MPT pass-through command, followed by completion through Interrupt context. Note: Device driver version is 6.602.03.00.
Version 6.600.20.00-4 - Suggested ------------------- Fixes: - Fixed reboot issue in SLES 11.3 xen. Note: Device driver version number has not changed. Version 6.600.20.00
Version 6.600.20.00 - Suggested ------------------- Enhancement(s): - Add Support for ServeRAID M5210 and M5210e SAS/SATA Controller
Version 6.506.00.00 - Suggested ------------------- Retain Tip: Tip #28016 Enhancement(s): - Added ability for user to configure the maximum number of MSI-X vectors launched for M51XX and M1XX controllers.
Version 00.00.06.19 - Suggested ------------------- Fixes: - Fixed an issue where a kernel crash may occur in some cases, when megaraid_sas driver is loaded but controller is not present.
Version 00.00.06.15.01 - Suggested ------------------- Fixes: - Corrected version strings in the iso and rpm files. NOTE: No change to the device driver. Packaging fix only.
Version 00.00.06.15 - Suggested ------------------- Enhancements: - Add support for fpRead/WriteCapable & fpRead/WriteAcrossStripe - Add support for SLES 11 SP2.
Fixes: - Mask off MFI_FRAME_IEEE, MFI_FRAME_SGL64, MFI_FRAME_SENSE64 in megasas_mgmt_fw_ioctl() to prevent memory scribble issues from incorrectly built MegaCli frames. - Fixed reglockFlags for degraded RAID 5/6.
Version 00.00.06.12-01 - Suggested ------------------- Fix - Fixed issue where the device driver may fail to install with the following error: "389 SCRIPT INTERNAL INCONISISTENCY! REPORT TO IBM IMMEDIATELY" Note: No change to device driver version.
Version 00.00.06.12 - Suggested ------------------- Enhancement - Add support for ServeRAID M5016
Fixes - LSI Channel fixes
Version 00.00.04.38 - Non-critical ------------------- - Fixed issue where device driver could print message "kernel megasas: Command pool empty!" when the controller and megaraid driver are idle.
Version 00.00.04.37 - Suggested ------------------- - Fixed issue where the ServeRAID M1015 controller will halt during a OCR. - Fixed issue where OCR will not execute when the physical drives are in a power transition mode. - Fix issue where the ServeRAID M1015 controller will halt with a degraded RAID 5 array during IO.
Version 00.00.04.30 - Non-critical ------------------- - Added support for the ServeRAID M5025 SAS/SATA Controller
Fixes: - Fixed issue where during IO firmware faults at line : MonTask: line 1193 in file ../../raid/1078dma.c - Fixed issue where After 64 VD's are created using MSM the 'fdisk -l' command does not work. - Fixed issue where the firmware faults at line 739 in file ../../raid/1078main.c when rebooting after a recon. - Fixed issue where the drive partition is no longer present on the OS after importing a foreign configuration. - Fixed issue where Linux does not show the correct size of VD the second time if the 'fdisk -l' command is executed.
Version 00.00.04.17 - Non-critical ------------------- - Added support for the ServeRAID M1015 SAS/SATA controller. - Added support for the ServeRAID M5000 Series Advanced Feature Key.
Version 00.00.04.10 - Non-critical ------------------- - Added logic to support next-gen SAS2 controllers. - Added support for the ServeRAID M5015 and M5014 SAS/SATA controllers.
Version 00.00.03.23 - Non-critical ------------------- - Added support for the IBM ServeRAID MR10ie (CIOv) SAS controller. - Fixed an issue where, on a Xen kernel with guest OSs running, invoking kdump causes a system reboot. - Fixed an issue that results in a kernel panic when kdump is run on a system with heavy drive I/O.
Version 00.00.03.21 - Suggested ------------------- - Added support for the IBM ServeRAID MR10is SAS controller. - Fixed an issue where a command timeout would occur on a particular SAS hard drive, and would not recover. - Added a shutdown DCMD call to the shutdown routine to ensure a graceful shutdown. - Updated the list of required pre-built binaries. - Fixed an issue the could cause unexpected interrupts. - Fixed an issue where a memory sanity check would sometimes fail for a certain pointer on a 64-bit system, causing some enclosure components to not be seen.
Version 00.00.03.18 - Suggested ------------------- - Added support for the IBM ServeRAID MR10il SAS controller. - Fixed an issue where the OS would not reboot when a rebuild was in progress.
Version 00.00.03.13 - Non-critical ------------------- - Added support the IBM ServeRAID MR10i, MR10k, and MR10M SAS controllers. - Fixed an issue where, on boot to Xen kernel on Red Hat Enterprise Linux (RHEL) 5 64-bit, the user would encounter an “Error 13: Invalid or unsupported executable format” error.
Version 00.00.03.06 - Suggested ------------------- - Added diskdump support for Red Hat Enterprise Linux (RHEL) 3 and RHEL 4. - Set the reply_q_sz value to the maximum number of commands supported by the firmware. - On 2.4 kernels: fixed an issue where, when the system was rebooted, the shutdown routine did not get called; added a notifier for the reboot event and initiated a flush command from the reboot event handler. - Fixed issue where, on RHEL 3 Update 6, the driver would not install on AMD64 systems.
Version 00.00.03.01-1 --------------------- - Initial release ibm_dd_sraidmr_6_602_03_00-1_sles11_32-64_chg
BIOS/FW/UEFI Update for IBM N2125 SAS/SATA Controller
Controller Supported: IBM N2125 SAS/SATA Controller (46C9011)
- Fixed issue where acceptable indistro device drivers may not pass minium driver check. ibm_fw_mpt2sas_n2125-1_15_03_linux_32-64_chg
**************************************************************** | | | Tape LTO firmware update | | | | | | (C) Copyright International Business Machines Corporation | | 2000-2012 . All rights reserved. | | | | US Government Users Restricted Rights -- Use, duplication | | or disclosure restricted by GSA ADP Schedule Contract with | | IBM Corp. | | | | Note: Before using this information and the product it | | supports, read the general information under "NOTICES AND | | TRADEMARKS" in this document. | | | | Updated: 1/29/2013 | | | ****************************************************************
Change History
ver 1.7 To update the LTO 3 v2 firmware to C7RD To update the LTO 4 v1 firmware to C7Q5 To update the LTO 4 v2 firmware to C7RD To update the LTO 5 v1/v2 firmware to C7RD
ver 1.6_01 To update the initilialization file for reflash tool and the new version of LTO Gen 4 v1 firmware into BBH5.
ver 1.6_00 updated firmware for LTO42 to BBNF updated firmware for LTO32 to BBNF
ver 1.5_00 updated firmware for LTO 3 to BBNF updated firmware for LTO 4 to BBNF updated firmware for LTO 5 to BBNM
ver 1.4_04 updated firmware for LTO 5 to BBNB
ver 1.4_01
updated firmware for LTO 4 to A23E
ver 1.4_00
updated firmware for LTO 5 to A6S1 updated firmware for LTO 4 to A231
ver 1.3_02
update .txt and .chg files
ver 1.3_01
corrected XML / TML file names for new firmware (A4Q1 -> A5M1)
ver 1.3_00
updated firmware for LTO 5 to A5M1
ver 1.2
updated firmware for LTO 5 to A4Q1
ver 1.1
updated XML / TML to add new systems
ver 1.0
This firmware will change the firmware of your LTO tape drive to the latest available, unless it is already at the latest level.
- IBM HH LTO5 SAS (49Y9898 - 3628L5X - 3628N5X) @ A2C1 - IBM HH LTO1 SCSI (24P2396 - Newton) @ N2CG - IBM HH LTO1 SCSI (24P2396 - Pompy) @ P63I - IBM HH LTO2 SCSI (39M5658) @ 0468 - IBM HH LTO3 SAS (43W8478) @ 93G1 - IBM HH LTO4 SAS (44E8895) @ 93Y1 - IBM FH LTO1 SCSI (00N8016) @ 59C0 - IBM FH LTO2 SCSI (59P6744) @ 8571 - IBM FH LTO3 SCSI (39M5657) @ 87G0 ibm_fw_tape_lto-1_7_windows_32-64_chg
Adapters Supported: ServeRAID M5210e SAS/SATA Controller for IBM System x ServeRAID M5210 SAS/SATA Controller
NOTE TO SERVICE - Reference RETAIN #N/A
Version 24.2.1-0027 - Non-Critical ------------------- Enhancment(s): - Add event in FW to indicate that an INIT operation was halted due to reboot or other failure Fixes: - Increase backplane support to 32 slots. - Enable 512E support. - Fixed an issue where system is not allocating memory correctly when MR and iMR are in the same configuration - Fixed an issue where the user is Unable to create a RAID10 through Ctrl R using 4k drives. - Fixed an issue where on a local key management (LKM) enabled controller, the user is asked to enter the security key to unlock and import a foreign drive, which is locked and has external key management (EKM) enabled. - Fixed an issue where switching between external key management (EKM) and Local Key Management (LKM) without rebooting results in the current secret key string becoming invalid/null. - Fixed an issue where cache memory size is listed as zero in controller Information. - Fixed an issue where re-keying a controller with External key management (EKM) enabled and rebooting the system results in a corrupted key ID and an error message "Unable to communicate with EKMS ..." is displayed. - Fixed an issue where performing an online firmware update or online controller reset (OCR) on a controller with External key management (EKM) enabled, results in all secured drives marked as foreign. - Fixed an issue where CacheCade volumes, which are not supported, could be created using 4K SSD's. - Fixed an issue where removing the last physical drive of arrays could result in a firmware fault. - Fixed an issue where MegaRAID Storage Manager does not show an option to create virtual drives when the first drive in the array is missing in a partial virtual drive where all drives are configured. - Fixed an issue where switching the security mode from external key management (EKM) to local key management (LKM) on iMR controller will result in a corrupted controller key. - Fixed an issue where performing a re-key operation in external key management (EKM) mode without doing a reboot, and then switching to local key management Mode(LKM) results in the Firmware logs showing that a drive security key was created but HII says the key is incorrect.
Version 24.0.2-0013 ------------------- -Initial release ibm_fw_sraidmr_5210-24_2_1-0027_linux_32-64_chg
Broadcom NetXtreme TG3 Linux Driver
Version 3.136e
Copyright (c) 2010 - 2014 Broadcom Corporation All rights reserved
tg3: Poll cpmu link state on APE + ASF enabled devices
On ASF enabled devices where the mgmt firmware runs on the application processing engine, there is a race between the tg3 driver processing a link change event and the ASF firmware clearing the link changed bit in the EMAC status register. This leads to link notifications to the driver sometimes getting lost.
Poll the CPMU link state as a backup for the normal interrupt path update if ASF is enabled.
Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
tg3: Set the MAC clock to the fastest speed during boot code load
On the 5717, 5718 and 5719 devices, the bootcode runs slower when any port doesn't have a link due to clock speed slowing down as part of the link-aware feature. This leads to the driver timing out waiting for the bootcode signature.
This patch overrides the clock policy to the highest frequency just before reset and restores it after the bootcode is up.
Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
commit e565eec31d9d5b1024311564f6536162df951de4 Author: Michael Chan Date: Fri Jan 3 10:09:12 2014 -0800
tg3: Add unicast filtering support.
Up to 3 additional unicast addresses can be added to the perfect match filter table.
Signed-off-by: Michael Chan Signed-off-by: Nithin Nayak Sujir Signed-off-by: David S. Miller
commit f022ae62dd84425192b27100dcf907019f654d02 Author: Michael Chan Date: Fri Jan 3 10:09:11 2014 -0800
tg3: Refactor __tg3_set_mac_addr()
so that individual MAC address filter entries can be set.
Signed-off-by: Michael Chan Signed-off-by: Nithin Nayak Sujir Signed-off-by: David S. Miller
tg3: Expand 4g_overflow_test workaround to skb fragments of any size.
The current driver assumes that an skb fragment can only be upto jumbo size. Presumably this was a fast-path optimization. This assumption is no longer true as fragments can be upto 32k.
v2: Remove unnecessary parantheses per Eric Dumazet.
Cc: stable@vger.kernel.org Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
tg3: Initialize REG_BASE_ADDR at PCI config offset 120 to 0
The new tg3 driver leaves REG_BASE_ADDR (PCI config offset 120) uninitialized. From power on reset this register may have garbage in it. The Register Base Address register defines the device local address of a register. The data pointed to by this location is read or written using the Register Data register (PCI config offset 128). When REG_BASE_ADDR has garbage any read or write of Register Data Register (PCI 128) will cause the PCI bus to lock up. The TCO watchdog will fire and bring down the system.
Signed-off-by: Nat Gurumoorthy Acked-by: Michael Chan Signed-off-by: David S. Miller
tg3: Expand multicast drop counter miscounting fix to 5762
commit 4d95847381228639844c7197deb8b2211274ef22 - "tg3: Workaround rx_discards stat bug", added a workaround for miscounted statistics for multicast packets. This fix needs to be applied to the 5762.
Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
tg3: Add flag to disable 1G Half Duplex advertisement
Some link partners have issues if the non-standard 1G half duplex is advertised. This patch adds support for an nvram setting to disable the advertisement.
Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
rxbds_empty is an informational statistic signifying that a ring full condition was observed. It does not mean an overflow has occurred.
Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
commit 8496e85c20e7836b3dec97780e40f420a3ae2801 Author: Rafael J. Wysocki Date: Sun Dec 1 02:34:37 2013 +0100
PCI / tg3: Give up chip reset and carrier loss handling if PCI device is not present
Modify tg3_chip_reset() and tg3_close() to check if the PCI network adapter device is accessible at all in order to skip poking it or trying to handle a carrier loss in vain when that's not the case. Introduce a special PCI helper function pci_device_is_present() for this purpose.
Of course, this uncovers the lack of the appropriate RTNL locking in tg3_suspend() and tg3_resume(), so add that locking in there too.
These changes prevent tg3 from burning a CPU at 100% load level for solid several seconds after the Thunderbolt link is disconnected from a Matrox DS1 docking station.
Signed-off-by: Rafael J. Wysocki Acked-by: Michael Chan Signed-off-by: David S. Miller
commit 7260899bde50cbe84bdf0a15b5642e2c3b03db32 Author: Ben Hutchings Date: Mon Nov 18 22:59:43 2013 +0000
tg3: Implement the SIOCGHWTSTAMP ioctl
While we're doing this, fix the error code for SIOCSHWTSTAMP ioctl on non-timestamping hardware.
Compile-tested only.
Signed-off-by: Ben Hutchings
commit 58b187c68d91b54b82f6fd267ee3346ed8770655 Author: Ben Hutchings Date: Thu Nov 14 00:40:56 2013 +0000
tg3: Validate hwtstamp_config completely before applying it
tg3_hwtstamp_ioctl() should validate all fields of hwtstamp_config before making any changes. Currently it sets the TX configuration before validating the rx_filter field.
Compile-tested only.
Signed-off-by: Ben Hutchings Acked-by: Nithin Nayak Sujir Signed-off-by: David S. Miller
commit 85aec73d595b8847f9c4ea571deb127913f0d508 Author: Ivan Vecera Date: Wed Nov 6 14:02:36 2013 +0100
tg3: avoid double-freeing of rx data memory
If build_skb fails the memory associated with the ring buffer is freed but the ri->data member is not zeroed in this case. This causes a double-free of this memory in tg3_free_rings->... path. The patch moves this block after setting ri->data to NULL. It would be nice to fix this bug also in stable >= v3.4 trees.
Cc: Nithin Nayak Sujir Cc: Michael Chan Signed-off-by: Ivan Vecera Acked-by: Michael Chan Signed-off-by: David S. Miller
commit d458cdf712e0c671e8e819abb16ecd6e44f9daec Author: Joe Perches Date: Tue Oct 1 19:04:40 2013 -0700
net:drivers/net: Miscellaneous conversions to ETH_ALEN
Convert the memset/memcpy uses of 6 to ETH_ALEN where appropriate.
Also convert some struct definitions and u8 array declarations of [6] to ETH_ALEN.
Signed-off-by: Joe Perches Acked-by: Arend van Spriel Signed-off-by: David S. Miller
tg3: add support a phy at an address different than 01
When phylib was in use tg3 only searched at address 01 on the mdio bus and did not work with any other address. On the BCM4705 SoCs the switch is connected as a PHY behind the MAC driven by tg3 and it is at PHY address 30 in most cases. This is a preparation patch to allow support for such switches.
phy_addr is set to TG3_PHY_MII_ADDR for all devices, which are using phylib, so this should not change any behavior.
Signed-off-by: Hauke Mehrtens Acked-by: Nithin Nayak Sujir Signed-off-by: David S. Miller
Commit 989038e217e94161862a959e82f9a1ecf8dda152 ("tg3: Don't turn off led on 5719 serdes port 0") added code to skip turning led off on port 0 of the 5719 since it powered down other ports. This workaround needs to be enabled on the 5720 as well.
Cc: stable@vger.kernel.org Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
commit ede23fa8161c1a04aa1b3bf5447812ca14b3fef1 Author: Joe Perches Date: Mon Aug 26 22:45:23 2013 -0700
drivers:net: Convert dma_alloc_coherent(...__GFP_ZERO) to dma_zalloc_coherent
__GFP_ZERO is an uncommon flag and perhaps is better not used. static inline dma_zalloc_coherent exists so convert the uses of dma_alloc_coherent with __GFP_ZERO to the more common kernel style with zalloc.
Remove memset from the static inline dma_zalloc_coherent and add just one use of __GFP_ZERO instead.
Trivially reduces the size of the existing uses of dma_zalloc_coherent.
Realign arguments as appropriate.
Signed-off-by: Joe Perches Acked-by: Neil Horman Acked-by: Jesse Brandeburg Acked-by: Jeff Kirsher Signed-off-by: David S. Miller
While EEH error happens, we might not have network device instance (struct net_device) yet. So we can't access the instance safely and check its link state, which causes kernel crash. The patch fixes it.
EEH: Frozen PE#2 on PHB#3 detected EEH: This PCI device has failed 1 times in the last hour EEH: Notify device drivers to shutdown (NULL net_device): PCI I/O error detected Unable to handle kernel paging request for data at address 0x00000048 Faulting instruction address: 0xd00000001c9387a8 Oops: Kernel access of bad area, sig: 11 [#1] SMP NR_CPUS=1024 NUMA PowerNV : NIP [d00000001c9387a8] .tg3_io_error_detected+0x78/0x2a0 [tg3] LR [d00000001c9387a4] .tg3_io_error_detected+0x74/0x2a0 [tg3] Call Trace: [c000003f93a0f960] [d00000001c9387a4] .tg3_io_error_detected+0x74/0x2a0 [tg3] [c000003f93a0fa30] [c00000000003844c] .eeh_report_error+0xac/0x120 [c000003f93a0fac0] [c0000000000371bc] .eeh_pe_dev_traverse+0x8c/0x150 [c000003f93a0fb60] [c000000000038858] .eeh_handle_normal_event+0x128/0x3d0 [c000003f93a0fbf0] [c000000000038db8] .eeh_handle_event+0x2b8/0x2c0 [c000003f93a0fc90] [c000000000038e80] .eeh_event_handler+0xc0/0x170 [c000003f93a0fd30] [c0000000000cc000] .kthread+0xf0/0x100 [c000003f93a0fe30] [c00000000000a0dc] .ret_from_kernel_thread+0x5c/0x80
Reported-by: Wei Yang Signed-off-by: Gavin Shan Acked-by: Nithin Nayak Sujir Signed-off-by: David S. Miller
Turning off led on port 0 of the 5719 serdes causes all other ports to lose power and stop functioning. Add tg3_phy_led_bug() function to check for this condition. We use a switch() in tg3_phy_led_bug() for consistency with the tg3_phy_power_bug() function.
Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
commit 6829309926b90c4c32d1f4cafeb600cd34a721e3 Author: Daniel Borkmann Date: Tue Aug 13 11:45:13 2013 -0700
net: tg3: fix NULL pointer dereference in tg3_io_error_detected and tg3_io_slot_reset
Commit d8af4dfd8 ("net/tg3: Fix kernel crash") introduced a possible NULL pointer dereference in tg3 driver when !netdev || !netif_running(netdev) condition is met and netdev is NULL. Then, the jump to the 'done' label calls dev_close() with a netdevice that is NULL. Therefore, only call dev_close() when we have a netdevice, but one that is not running.
[ Add the same checks in tg3_io_slot_reset() per Gavin Shan - by Nithin Nayak Sujir ]
Reported-by: Dave Jones Signed-off-by: Daniel Borkmann Cc: Gavin Shan Cc: Michael Chan Signed-off-by: Nithin Nayak Sujir Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
The 5762 devices sometimes incorrectly treat udp fragments as RMCP packets and route to the APE. This patch sets the RX_MODE_IPV4_FRAG_FIX bit for these devices which enables the proper behaviour.
Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
The PTP_CAPABLE tg3 devices have a gpio output that is toggled when the free running counter matches a watchdog value. This patch adds support to set the watchdog and enable this feature.
Since the output is controlled via bits in the EAV_REF_CLCK_CTL register, we have to read-modify-write it when we stop/resume.
Cc: Richard Cochran Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
tg3: Allow NVRAM programming when interface is down
Previously, when the interface was brought down, the driver would set the power state to D3hot. In D3hot, we don't have access to the NVRAM. This patch removes the call to set the power state to PCI_D3hot in close. A following patch will implement the shutdown handler to properly set the D3hot state when the system is going down.
Doing the above means that the TG3_PHYFLG_IS_LOW_POWER should not be checked to validate access to the NVRAM.
Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
During probe, the driver is incorrectly switching the power to Vaux on the 5717 and later devices. At this point, we are in D0 state and drawing maximum power. We also definitely have Vmain available. It doesn't make sense to switch to Vaux since it has a lesser maximum power draw and we might go over the limit. On a new system, we observe that not all ports are recognized in some of the slots with this call in place.
Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
When the EEH error is the result of a fenced host bridge, MMIO accesses can be very slow (milliseconds) to timeout and return all 1's, thus causing the driver various timeout loops to take way too long and trigger soft-lockup warnings (in addition to taking minutes to recover).
It might be worthwhile to check if for any of these cases, ffffffff is a valid possible value, and if not, bail early since that means the HW is either gone or isolated. In the meantime, checking that the PCI channel is offline would be workaround of the problem.
Cc: # v3.0+ Signed-off-by: Gavin Shan Signed-off-by: David S. Miller
commit 72bb72b0d98847d22c6fae4e170121f3640f0f60 Author: Michael Chan Date: Mon Jun 17 13:47:25 2013 -0700
tg3: Prevent system hang during repeated EEH errors.
The current tg3 code assumes the pci_error_handlers to be always called in sequence. In particular, during ->error_detected(), NAPI is disabled and the device is shutdown. The device is later reset and NAPI re-enabled in ->slot_reset() and ->resume().
In EEH, if more than 6 errors are detected in a hour, only ->error_detected() will be called. This will leave the driver in an inconsistent state as NAPI is disabled but netif_running state is still true. When the device is later closed, we'll try to disable NAPI again and it will loop forever.
We fix this by closing the device if we encounter any error conditions during the normal sequence of the pci_error_handlers.
v2: Remove the changes in tg3_io_resume() based on Benjamin Poirier's feedback.
Signed-off-by: Michael Chan Signed-off-by: Nithin Nayak Sujir Signed-off-by: David S. Miller
Some systems that don't need wake-on-lan may choose to power down the chip on system standby. Upon resume, the power on causes the boot code to startup and initialize the hardware. On one new platform, this is causing the device to go into a bad state due to a race between the driver and boot code, once every several hundred resumes. The same race exists on open since we come up from a power on.
This patch adds a wait for boot code signature at the beginning of tg3_init_hw() which is common to both cases. If there has not been a power-off or the boot code has already completed, the signature will be present and poll_fw() returns immediately. Also return immediately if the device does not have firmware.
Cc: stable@vger.kernel.org Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
Commit 091f0ea30074bc43f9250961b3247af713024bc6 "tg3: Add New 5719 Read DMA workaround" added a workaround for TX DMA stall on the 5719. This workaround needs to be applied to the 5720 as well.
Cc: stable@vger.kernel.org Reported-by: Roland Dreier Tested-by: Roland Dreier Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
The current code calls tg3_set_bdinfo() separately on napi0, followed by a loop that does napi1+. Simplify it by setting bdinfo in the loop for all napi contexts.
Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
tg3: Split APE driver state change out of boot reset signature update
Unlike the boot signature that needs to be set before every reset, the ape state only needs to be updated to tell the firmware that the driver is now taking/releasing control of the hardware. Move the calls to tg3_ape_driver_state_change() to better, more appropriate places.
Also, the firmware does not distinguish between SUSPEND and START states anymore. Remove the SUSPEND case in the switch.
Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
tg3: Ensure boot code has completed initialization before accessing hardware
After resetting the device, the driver waits for a signature to be updated to know that firmware has completed initialization. However, the call to tg3_poll_fw() is being done too late and we're writing to the GRC_MODE register before it has completely initialized, causing contention with firmware. This logic has existed since day one but is causing PCIE link to go down randomly at startup on one platform once every few hundred reboots.
Move the tg3_poll_fw() up to before we write to the GRC_MODE register after reset.
Signed-off-by: Nithin Nayak Sujir Signed-off-by: Michael Chan Signed-off-by: David S. Miller
commit 1cbf9eb85a6601b58f01a71ff10299d2bf5d3365 Author: Nithin Sujir Date: Sat May 18 06:26:55 2013 +0000
tg3: Implement set/get_eee handlers
Reviewed-by: Ben Li Signed-off-by: Michael Chan Signed-off-by: Nithin Nayak Sujir Signed-off-by: David S. Miller
commit 5b6c273ad6c3886f30c7c5df7009e489043c59f3 Author: Nithin Sujir Date: Sat May 18 06:26:54 2013 +0000
tg3: Simplify tg3_phy_eee_config_ok() by reusing tg3_eee_pull_config()
eee_config_ok() was checking only for mismatch in advertised settings. This patch expands the scope of eee_config_ok() to check for mismatch in the other eee settings. On mismatch we will require a call to tg3_setup_eee() to push the configured settings to the hardware.
Reviewed-by: Ben Li Signed-off-by: Michael Chan Signed-off-by: Nithin Nayak Sujir Signed-off-by: David S. Miller
commit 400dfbaa8d444a29056b051a3d7082dc611e3b12 Author: Nithin Sujir Date: Sat May 18 06:26:53 2013 +0000
tg3: Add tg3_eee_pull_config() function
Add tg3_eee_pull_config() to pull the settings from the hardware and populate the eee structure.
If Link Flap Avoidance is enabled, we pull the eee settings from the hw so as not to cause a phy reset on eee config mismatch later. This requires moving down tg3_setup_eee() below the tg3_pull_config() to not trample existing settings.
Reviewed-by: Ben Li Signed-off-by: Michael Chan Signed-off-by: Nithin Nayak Sujir Signed-off-by: David S. Miller
commit 9e2ecbeb250dee67f4bd06a18637c120b48a4865 Author: Nithin Sujir Date: Sat May 18 06:26:52 2013 +0000
tg3: Add ethtool_eee struct and tg3_setup_eee()
Add an eee structure and update it with eee settings. This will be used for set/get_eee operations. Add common function tg3_setup_eee() that will be used in the subsequent patches.
Reviewed-by: Ben Li Signed-off-by: Michael Chan Signed-off-by: Nithin Nayak Sujir Signed-off-by: David S. Miller
The commit f233a976ad15c3b8c54c0157f3c41d23f7514279 (tg3: shows HW time stamping support only if ptp_capable is present) didn't append hardware flags correctly. This patch fixes it.
Signed-off-by: Flavio Leitner Signed-off-by: David S. Miller
net: vlan: add protocol argument to packet tagging functions
Add a protocol argument to the VLAN packet tagging functions. In case of HW tagging, we need that protocol available in the ndo_start_xmit functions, so it is stored in a new field in the skb. The new field fits into a hole (on 64 bit) and doesn't increase the sks's size.
Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller
net: vlan: rename NETIF_F_HW_VLAN_* feature flags to NETIF_F_HW_VLAN_CTAG_*
Rename the hardware VLAN acceleration features to include "CTAG" to indicate that they only support CTAGs. Follow up patches will introduce 802.1ad server provider tagging (STAGs) and require the distinction for hardware not supporting acclerating both.
Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller
tg3: Reset the phy to allow modified EEE settings to take effect
When LFA is enabled, we don't reset the phy. But EEE settings changes don't take effect until the phy is reset. Add a phy reset when we detect a changed EEE setting.