From 4506912f6e4c2fb2beedc4b680cc770b377b570c Mon Sep 17 00:00:00 2001 From: Christian Helmuth Date: Thu, 28 Jan 2016 11:10:17 +0100 Subject: [PATCH] dde_ipxe: skip MAC/PHY reset on Intel NICs Inspired by the mailing-list posting [1], this commit removes the MAC/PHY reset for all Intel cards and effectively prevents the bandwidth drop to 10 MBit/s (e.g., on i217lm). I understand it as preliminary fix for practical reasons - a real fix would be to update the ipxe port and monitor for more postings like the one mentioned. [1] http://lists.ipxe.org/pipermail/ipxe-devel/2015-December/004511.html --- .../patches/{add_devices.patch => intel.patch} | 15 +++++++++++---- repos/dde_ipxe/ports/dde_ipxe.hash | 2 +- repos/dde_ipxe/ports/dde_ipxe.port | 2 +- 3 files changed, 13 insertions(+), 6 deletions(-) rename repos/dde_ipxe/patches/{add_devices.patch => intel.patch} (61%) diff --git a/repos/dde_ipxe/patches/add_devices.patch b/repos/dde_ipxe/patches/intel.patch similarity index 61% rename from repos/dde_ipxe/patches/add_devices.patch rename to repos/dde_ipxe/patches/intel.patch index d933eaafe..18e3c6708 100644 --- a/repos/dde_ipxe/patches/add_devices.patch +++ b/repos/dde_ipxe/patches/intel.patch @@ -1,8 +1,15 @@ -diff --git a/src/drivers/net/intel.c b/src/drivers/net/intel.c -index c3a7d40..794edbb 100644 ---- a/src/drivers/net/intel.c +++ b/src/drivers/net/intel.c -@@ -953,6 +953,10 @@ static struct pci_device_id intel_nics[] = { +@@ -305,6 +305,9 @@ static int intel_reset ( struct intel_nic *intel ) { + return 0; + } + ++ /* XXX skip MAC/PHY reset */ ++ return 0; ++ + /* Reset PHY and MAC simultaneously */ + writel ( ( ctrl | INTEL_CTRL_RST | INTEL_CTRL_PHY_RST ), + intel->regs + INTEL_CTRL ); +@@ -953,6 +956,10 @@ static struct pci_device_id intel_nics[] = { PCI_ROM ( 0x8086, 0x1526, "82576-5", "82576", 0 ), PCI_ROM ( 0x8086, 0x1527, "82580-f2", "82580 Fiber", 0 ), PCI_ROM ( 0x8086, 0x1533, "i210", "I210", 0 ), diff --git a/repos/dde_ipxe/ports/dde_ipxe.hash b/repos/dde_ipxe/ports/dde_ipxe.hash index 0243a3524..3f53bdf80 100644 --- a/repos/dde_ipxe/ports/dde_ipxe.hash +++ b/repos/dde_ipxe/ports/dde_ipxe.hash @@ -1 +1 @@ -5385d261f5973bda28547cd9a5037058b126e01c +0e098bb1997a34688b68cec10f8173305aca9493 diff --git a/repos/dde_ipxe/ports/dde_ipxe.port b/repos/dde_ipxe/ports/dde_ipxe.port index 30fa26458..728914d73 100644 --- a/repos/dde_ipxe/ports/dde_ipxe.port +++ b/repos/dde_ipxe/ports/dde_ipxe.port @@ -7,7 +7,7 @@ REV(ipxe) := c4bce43c3c4d3c5ebb2d926b58ad16dc9642c19d DIR(ipxe) := src/lib/dde_ipxe PATCHES := patches/dde_ipxe.patch \ - patches/add_devices.patch \ + patches/intel.patch \ patches/tg3.patch PATCH_OPT := -p1 -d ${DIR(ipxe)}