rpms/kernel/F-10 linux-2.6-e1000e-enable-ecc-on-82571.patch, NONE, 1.1.2.1 linux-2.6-e1000e-workaround-hw-errata.patch, NONE, 1.1.2.1 kernel.spec, 1.1206.2.26, 1.1206.2.27 linux-2.6-e1000e-add-support-for-the-82567LM-4-device.patch, 1.2, 1.2.12.1

Chuck Ebbert cebbert at fedoraproject.org
Tue Feb 17 20:14:32 UTC 2009


Author: cebbert

Update of /cvs/pkgs/rpms/kernel/F-10
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv970

Modified Files:
      Tag: private-fedora-10-2_6_27
	kernel.spec 
	linux-2.6-e1000e-add-support-for-the-82567LM-4-device.patch 
Added Files:
      Tag: private-fedora-10-2_6_27
	linux-2.6-e1000e-enable-ecc-on-82571.patch 
	linux-2.6-e1000e-workaround-hw-errata.patch 
Log Message:
Fix e1000e Tx unit hang, enable ECC on parts that support it.

linux-2.6-e1000e-enable-ecc-on-82571.patch:

--- NEW FILE linux-2.6-e1000e-enable-ecc-on-82571.patch ---
From: Alexander Duyck <alexander.h.duyck at intel.com>
Date: Fri, 14 Nov 2008 06:54:36 +0000 (+0000)
Subject: e1000e: enable ECC correction on 82571 silicon
X-Git-Tag: v2.6.29-rc1~581^2~707
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=6ea7ae1d0fc02a6c4ccd27e43346f67c44226e7a

e1000e: enable ECC correction on 82571 silicon

This change enables ECC correction for the packet buffer on all 82571
silicon.

Signed-off-by: Alexander Duyck <alexander.h.duyck at intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher at intel.com>
Signed-off-by: David S. Miller <davem at davemloft.net>
---

diff --git a/drivers/net/e1000e/82571.c b/drivers/net/e1000e/82571.c
index b2c910c..3027ad5 100644
--- a/drivers/net/e1000e/82571.c
+++ b/drivers/net/e1000e/82571.c
@@ -973,6 +973,12 @@ static void e1000_initialize_hw_bits_82571(struct e1000_hw *hw)
 		ew32(CTRL_EXT, reg);
 	}
 
+	if (hw->mac.type == e1000_82571) {
+		reg = er32(PBA_ECC);
+		reg |= E1000_PBA_ECC_CORR_EN;
+		ew32(PBA_ECC, reg);
+	}
+
 	/* PCI-Ex Control Register */
 	if (hw->mac.type == e1000_82574) {
 		reg = er32(GCR);
diff --git a/drivers/net/e1000e/defines.h b/drivers/net/e1000e/defines.h
index 48f79ec..34a68fc 100644
--- a/drivers/net/e1000e/defines.h
+++ b/drivers/net/e1000e/defines.h
@@ -372,6 +372,13 @@
 #define E1000_ICR_TXQ1          0x00800000 /* Tx Queue 1 Interrupt */
 #define E1000_ICR_OTHER         0x01000000 /* Other Interrupts */
 
+/* PBA ECC Register */
+#define E1000_PBA_ECC_COUNTER_MASK  0xFFF00000 /* ECC counter mask */
+#define E1000_PBA_ECC_COUNTER_SHIFT 20         /* ECC counter shift value */
+#define E1000_PBA_ECC_CORR_EN       0x00000001 /* ECC correction enable */
+#define E1000_PBA_ECC_STAT_CLR      0x00000002 /* Clear ECC error counter */
+#define E1000_PBA_ECC_INT_EN        0x00000004 /* Enable ICR bit 5 for ECC */
+
 /*
  * This defines the bits that are set in the Interrupt Mask
  * Set/Read Register.  Each bit is documented below:
diff --git a/drivers/net/e1000e/hw.h b/drivers/net/e1000e/hw.h
index f66ed37..c4ffd4b 100644
--- a/drivers/net/e1000e/hw.h
+++ b/drivers/net/e1000e/hw.h
@@ -87,6 +87,7 @@ enum e1e_registers {
 	E1000_EEMNGCTL = 0x01010, /* MNG EEprom Control */
 	E1000_EEWR     = 0x0102C, /* EEPROM Write Register - RW */
 	E1000_FLOP     = 0x0103C, /* FLASH Opcode Register */
+	E1000_PBA_ECC  = 0x01100, /* PBA ECC Register */
 	E1000_ERT      = 0x02008, /* Early Rx Threshold - RW */
 	E1000_FCRTL    = 0x02160, /* Flow Control Receive Threshold Low - RW */
 	E1000_FCRTH    = 0x02168, /* Flow Control Receive Threshold High - RW */

linux-2.6-e1000e-workaround-hw-errata.patch:

--- NEW FILE linux-2.6-e1000e-workaround-hw-errata.patch ---
From: Jesse Brandeburg <jesse.brandeburg at intel.com>
Date: Mon, 26 Jan 2009 20:16:26 +0000 (-0800)
Subject: e1000e: workaround hw errata
X-Git-Tag: v2.6.29-rc3~23^2~9
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=78272bbab895cc8f63bab5181dee55b72208e3b7

e1000e: workaround hw errata

There is a hardware errata in some revisions of the 82574 that needs
to be worked around in the driver by setting a register bit at init.

If this bit is not set A0 versions of the 82574 can generate
tx hangs.

Signed-off-by: Jesse Brandeburg <jesse.brandeburg at intel.com>
Signed-off-by: Bruce Allan <bruce.w.allan at intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher at intel.com>
Signed-off-by: David S. Miller <davem at davemloft.net>
---

diff --git a/drivers/net/e1000e/82571.c b/drivers/net/e1000e/82571.c
index cf43ee7..0890162 100644
--- a/drivers/net/e1000e/82571.c
+++ b/drivers/net/e1000e/82571.c
@@ -981,11 +981,15 @@ static void e1000_initialize_hw_bits_82571(struct e1000_hw *hw)
 		ew32(PBA_ECC, reg);
 	}
 
-	/* PCI-Ex Control Register */
+	/* PCI-Ex Control Registers */
 	if (hw->mac.type == e1000_82574) {
 		reg = er32(GCR);
 		reg |= (1 << 22);
 		ew32(GCR, reg);
+
+		reg = er32(GCR2);
+		reg |= 1;
+		ew32(GCR2, reg);
 	}
 
 	return;
diff --git a/drivers/net/e1000e/hw.h b/drivers/net/e1000e/hw.h
index f25e961..2d4ce04 100644
--- a/drivers/net/e1000e/hw.h
+++ b/drivers/net/e1000e/hw.h
@@ -206,6 +206,7 @@ enum e1e_registers {
 	E1000_MANC2H    = 0x05860, /* Management Control To Host - RW */
 	E1000_SW_FW_SYNC = 0x05B5C, /* Software-Firmware Synchronization - RW */
 	E1000_GCR	= 0x05B00, /* PCI-Ex Control */
+	E1000_GCR2      = 0x05B64, /* PCI-Ex Control #2 */
 	E1000_FACTPS    = 0x05B30, /* Function Active and Power State to MNG */
 	E1000_SWSM      = 0x05B50, /* SW Semaphore */
 	E1000_FWSM      = 0x05B54, /* FW Semaphore */


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/kernel.spec,v
retrieving revision 1.1206.2.26
retrieving revision 1.1206.2.27
diff -u -r1.1206.2.26 -r1.1206.2.27
--- kernel.spec	17 Feb 2009 19:47:41 -0000	1.1206.2.26
+++ kernel.spec	17 Feb 2009 20:14:02 -0000	1.1206.2.27
@@ -679,8 +679,11 @@
 Patch2002: linux-2.6-e1000e-add-support-for-82567LM-3-and-82567LF-3-ICH10D-parts.patch
 Patch2003: linux-2.6-e1000e-add-support-for-new-82574L-part.patch
 
+Patch2004: linux-2.6-e1000e-enable-ecc-on-82571.patch
+Patch2005: linux-2.6-e1000e-workaround-hw-errata.patch
+
 # r8169 fixes
-Patch2005: linux-2.6-netdev-r8169-2.6.28.patch
+Patch2009: linux-2.6-netdev-r8169-2.6.28.patch
 
 # Make Eee laptop driver suck less
 Patch2011: linux-2.6-eeepc-laptop-update.patch
@@ -1298,6 +1301,9 @@
 ApplyPatch linux-2.6-e1000e-add-support-for-82567LM-3-and-82567LF-3-ICH10D-parts.patch
 ApplyPatch linux-2.6-e1000e-add-support-for-new-82574L-part.patch
 
+ApplyPatch linux-2.6-e1000e-enable-ecc-on-82571.patch
+ApplyPatch linux-2.6-e1000e-workaround-hw-errata.patch
+
 ApplyPatch linux-2.6-netdev-r8169-2.6.28.patch
 
 ApplyPatch linux-2.6-eeepc-laptop-update.patch
@@ -1933,7 +1939,10 @@
 %kernel_variant_files -k vmlinux %{with_kdump} kdump
 
 %changelog
-* Tue Feb 17 2009 Chuck Ebbert <cebbert at redhat.com> 2.6.27.18-170.2.25
+* Tue Feb 17 2009 Chuck Ebbert <cebbert at redhat.com> 2.6.27.18-170.2.27
+- Fix e1000e Tx unit hang, enable ECC on parts that support it.
+
+* Tue Feb 17 2009 Chuck Ebbert <cebbert at redhat.com> 2.6.27.18-170.2.26
 - 2.6.27.18
   Dropped patches (merged upstream):
     linux-2.6-x86-pci-amd-config-space.patch
@@ -1943,7 +1952,7 @@
     linux-2.6-libata-fix-eh-device-failure-handling.patch
     linux-2.6-apple-wireless-keyboard-fix.patch
 
-* Tue Feb 17 2009 Ben Skeggs <bskeggs at redhat.com>
+* Tue Feb 17 2009 Ben Skeggs <bskeggs at redhat.com> 2.6.27.18-170.2.25
 - Bring in nouveau patchset from 2.6.29 kernel: fixes, support for more chips
 
 * Wed Feb 11 2009 Chuck Ebbert <cebbert at redhat.com> 2.6.27.15-78.2.24

linux-2.6-e1000e-add-support-for-the-82567LM-4-device.patch:

Index: linux-2.6-e1000e-add-support-for-the-82567LM-4-device.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/Attic/linux-2.6-e1000e-add-support-for-the-82567LM-4-device.patch,v
retrieving revision 1.2
retrieving revision 1.2.12.1
diff -u -r1.2 -r1.2.12.1
--- linux-2.6-e1000e-add-support-for-the-82567LM-4-device.patch	2 Oct 2008 12:49:17 -0000	1.2
+++ linux-2.6-e1000e-add-support-for-the-82567LM-4-device.patch	17 Feb 2009 20:14:02 -0000	1.2.12.1
@@ -1,7 +1,10 @@
-From 2f15f9d60190a62bc8ac50fa84fea31fc0b00ecf Mon Sep 17 00:00:00 2001
 From: Bruce Allan <bruce.w.allan at intel.com>
-Date: Tue, 26 Aug 2008 18:36:36 -0700
-Subject: [PATCH 1/3] e1000e: add support for the 82567LM-4 device
+Date: Wed, 27 Aug 2008 01:36:36 +0000 (-0700)
+Subject: e1000e: add support for the 82567LM-4 device
+X-Git-Tag: v2.6.28-rc1~717^2~325
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=2f15f9d60190a62bc8ac50fa84fea31fc0b00ecf
+
+e1000e: add support for the 82567LM-4 device
 
 Enable PCI device ID for a new combination of MAC and PHY already supported
 in the driver.
@@ -10,10 +13,6 @@
 Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher at intel.com>
 Signed-off-by: Jeff Garzik <jgarzik at redhat.com>
 ---
- drivers/net/e1000e/hw.h      |    1 +
- drivers/net/e1000e/ich8lan.c |    1 +
- drivers/net/e1000e/netdev.c  |    1 +
- 3 files changed, 3 insertions(+), 0 deletions(-)
 
 diff --git a/drivers/net/e1000e/hw.h b/drivers/net/e1000e/hw.h
 index 74f263a..d0e7b46 100644
@@ -28,7 +27,7 @@
  #define E1000_DEV_ID_ICH9_IGP_M			0x10BF
  #define E1000_DEV_ID_ICH9_IGP_M_V		0x10CB
 diff --git a/drivers/net/e1000e/ich8lan.c b/drivers/net/e1000e/ich8lan.c
-index d8efba8..52068bc 100644
+index 9e38452..b5fc2c9 100644
 --- a/drivers/net/e1000e/ich8lan.c
 +++ b/drivers/net/e1000e/ich8lan.c
 @@ -44,6 +44,7 @@
@@ -40,10 +39,10 @@
  
  #include <linux/netdevice.h>
 diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
-index 1f767fe..c752725 100644
+index d266510..c3d7411 100644
 --- a/drivers/net/e1000e/netdev.c
 +++ b/drivers/net/e1000e/netdev.c
-@@ -4771,6 +4771,7 @@ static struct pci_device_id e1000_pci_tbl[] = {
+@@ -4767,6 +4767,7 @@ static struct pci_device_id e1000_pci_tbl[] = {
  	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH9_IFE_GT), board_ich9lan },
  	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH9_IGP_AMT), board_ich9lan },
  	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH9_IGP_C), board_ich9lan },
@@ -51,6 +50,3 @@
  	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH9_IGP_M), board_ich9lan },
  	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH9_IGP_M_AMT), board_ich9lan },
  	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH9_IGP_M_V), board_ich9lan },
--- 
-1.5.5.1
-




More information about the fedora-extras-commits mailing list