aboutsummaryrefslogtreecommitdiffstats
path: root/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-16.07-net-igb-move-PCI-device-IDs-from-EAL.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-16.07-net-igb-move-PCI-device-IDs-from-EAL.patch')
-rw-r--r--meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-16.07-net-igb-move-PCI-device-IDs-from-EAL.patch278
1 files changed, 278 insertions, 0 deletions
diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-16.07-net-igb-move-PCI-device-IDs-from-EAL.patch b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-16.07-net-igb-move-PCI-device-IDs-from-EAL.patch
new file mode 100644
index 00000000..22fb6f89
--- /dev/null
+++ b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-16.07-net-igb-move-PCI-device-IDs-from-EAL.patch
@@ -0,0 +1,278 @@
+From 368fd936258873ee848f2c265e4ffd8e5d21d20e Mon Sep 17 00:00:00 2001
+From: Ferruh Yigit <ferruh.yigit@intel.com>
+Date: Fri, 5 Aug 2016 15:09:30 +0100
+Subject: [PATCH 2/3] net/igb: move PCI device IDs from EAL
+
+Upstream-Status: Backport [http://dpdk.org/browse/dpdk/commit/?id=
+109febfe58f93c5b425772563c35d4414a1a2c1c]
+
+PCI device ids moved from common header into igb driver itself.
+
+KNI starts using pci_device_id from kni/ethtool/igb driver, this is only
+for KNI ethtool support, KNI data path is not affected.
+
+Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
+(cherry picked from commit 109febfe58f93c5b425772563c35d4414a1a2c1c)
+Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com>
+---
+ drivers/net/e1000/igb_ethdev.c | 55 +++++++++--
+ lib/librte_eal/common/include/rte_pci_dev_ids.h | 107 ---------------------
+ lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c | 2 +-
+ lib/librte_eal/linuxapp/kni/kni_misc.c | 20 +---
+ 4 files changed, 50 insertions(+), 134 deletions(-)
+
+diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c
+index fbf4d09..4e9e6a3 100644
+--- a/drivers/net/e1000/igb_ethdev.c
++++ b/drivers/net/e1000/igb_ethdev.c
+@@ -306,22 +306,57 @@ static enum e1000_fc_mode igb_fc_setting = e1000_fc_full;
+ * The set of PCI devices this driver supports
+ */
+ static const struct rte_pci_id pci_id_igb_map[] = {
+-
+-#define RTE_PCI_DEV_ID_DECL_IGB(vend, dev) {RTE_PCI_DEVICE(vend, dev)},
+-#include "rte_pci_dev_ids.h"
+-
+-{0},
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576_FIBER) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576_SERDES) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576_QUAD_COPPER) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576_QUAD_COPPER_ET2) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576_NS) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576_NS_SERDES) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576_SERDES_QUAD) },
++
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82575EB_COPPER) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82575EB_FIBER_SERDES) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82575GB_QUAD_COPPER) },
++
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82580_COPPER) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82580_FIBER) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82580_SERDES) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82580_SGMII) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82580_COPPER_DUAL) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82580_QUAD_FIBER) },
++
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I350_COPPER) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I350_FIBER) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I350_SERDES) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I350_SGMII) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I350_DA4) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I210_COPPER) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I210_COPPER_OEM1) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I210_COPPER_IT) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I210_FIBER) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I210_SERDES) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I210_SGMII) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I211_COPPER) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I354_BACKPLANE_1GBPS) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I354_SGMII) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I354_BACKPLANE_2_5GBPS) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_DH89XXCC_SGMII) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_DH89XXCC_SERDES) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_DH89XXCC_BACKPLANE) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_DH89XXCC_SFP) },
++ { .vendor_id = 0, /* sentinel */ },
+ };
+
+ /*
+ * The set of PCI devices this driver supports (for 82576&I350 VF)
+ */
+ static const struct rte_pci_id pci_id_igbvf_map[] = {
+-
+-#define RTE_PCI_DEV_ID_DECL_IGBVF(vend, dev) {RTE_PCI_DEVICE(vend, dev)},
+-#include "rte_pci_dev_ids.h"
+-
+-{0},
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576_VF) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576_VF_HV) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I350_VF) },
++ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I350_VF_HV) },
++ { .vendor_id = 0, /* sentinel */ },
+ };
+
+ static const struct rte_eth_desc_lim rx_desc_lim = {
+diff --git a/lib/librte_eal/common/include/rte_pci_dev_ids.h b/lib/librte_eal/common/include/rte_pci_dev_ids.h
+index 1f9d372..1aae6f7 100644
+--- a/lib/librte_eal/common/include/rte_pci_dev_ids.h
++++ b/lib/librte_eal/common/include/rte_pci_dev_ids.h
+@@ -57,114 +57,7 @@
+ *
+ */
+
+-#ifndef RTE_PCI_DEV_ID_DECL_IGB
+-#define RTE_PCI_DEV_ID_DECL_IGB(vend, dev)
+-#endif
+-
+-#ifndef RTE_PCI_DEV_ID_DECL_IGBVF
+-#define RTE_PCI_DEV_ID_DECL_IGBVF(vend, dev)
+-#endif
+-
+ #ifndef PCI_VENDOR_ID_INTEL
+ /** Vendor ID used by Intel devices */
+ #define PCI_VENDOR_ID_INTEL 0x8086
+ #endif
+-
+-/******************** Physical IGB devices from e1000_hw.h ********************/
+-
+-#define E1000_DEV_ID_82576 0x10C9
+-#define E1000_DEV_ID_82576_FIBER 0x10E6
+-#define E1000_DEV_ID_82576_SERDES 0x10E7
+-#define E1000_DEV_ID_82576_QUAD_COPPER 0x10E8
+-#define E1000_DEV_ID_82576_QUAD_COPPER_ET2 0x1526
+-#define E1000_DEV_ID_82576_NS 0x150A
+-#define E1000_DEV_ID_82576_NS_SERDES 0x1518
+-#define E1000_DEV_ID_82576_SERDES_QUAD 0x150D
+-#define E1000_DEV_ID_82575EB_COPPER 0x10A7
+-#define E1000_DEV_ID_82575EB_FIBER_SERDES 0x10A9
+-#define E1000_DEV_ID_82575GB_QUAD_COPPER 0x10D6
+-#define E1000_DEV_ID_82580_COPPER 0x150E
+-#define E1000_DEV_ID_82580_FIBER 0x150F
+-#define E1000_DEV_ID_82580_SERDES 0x1510
+-#define E1000_DEV_ID_82580_SGMII 0x1511
+-#define E1000_DEV_ID_82580_COPPER_DUAL 0x1516
+-#define E1000_DEV_ID_82580_QUAD_FIBER 0x1527
+-#define E1000_DEV_ID_I350_COPPER 0x1521
+-#define E1000_DEV_ID_I350_FIBER 0x1522
+-#define E1000_DEV_ID_I350_SERDES 0x1523
+-#define E1000_DEV_ID_I350_SGMII 0x1524
+-#define E1000_DEV_ID_I350_DA4 0x1546
+-#define E1000_DEV_ID_I210_COPPER 0x1533
+-#define E1000_DEV_ID_I210_COPPER_OEM1 0x1534
+-#define E1000_DEV_ID_I210_COPPER_IT 0x1535
+-#define E1000_DEV_ID_I210_FIBER 0x1536
+-#define E1000_DEV_ID_I210_SERDES 0x1537
+-#define E1000_DEV_ID_I210_SGMII 0x1538
+-#define E1000_DEV_ID_I210_COPPER_FLASHLESS 0x157B
+-#define E1000_DEV_ID_I210_SERDES_FLASHLESS 0x157C
+-#define E1000_DEV_ID_I211_COPPER 0x1539
+-#define E1000_DEV_ID_I354_BACKPLANE_1GBPS 0x1F40
+-#define E1000_DEV_ID_I354_SGMII 0x1F41
+-#define E1000_DEV_ID_I354_BACKPLANE_2_5GBPS 0x1F45
+-#define E1000_DEV_ID_DH89XXCC_SGMII 0x0438
+-#define E1000_DEV_ID_DH89XXCC_SERDES 0x043A
+-#define E1000_DEV_ID_DH89XXCC_BACKPLANE 0x043C
+-#define E1000_DEV_ID_DH89XXCC_SFP 0x0440
+-
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_FIBER)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_SERDES)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_QUAD_COPPER)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_QUAD_COPPER_ET2)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_NS)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_NS_SERDES)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_SERDES_QUAD)
+-
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82575EB_COPPER)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82575EB_FIBER_SERDES)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82575GB_QUAD_COPPER)
+-
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82580_COPPER)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82580_FIBER)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82580_SERDES)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82580_SGMII)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82580_COPPER_DUAL)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82580_QUAD_FIBER)
+-
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I350_COPPER)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I350_FIBER)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I350_SERDES)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I350_SGMII)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I350_DA4)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I210_COPPER)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I210_COPPER_OEM1)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I210_COPPER_IT)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I210_FIBER)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I210_SERDES)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I210_SGMII)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I211_COPPER)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I354_BACKPLANE_1GBPS)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I354_SGMII)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I354_BACKPLANE_2_5GBPS)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_DH89XXCC_SGMII)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_DH89XXCC_SERDES)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_DH89XXCC_BACKPLANE)
+-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_DH89XXCC_SFP)
+-
+-/****************** Virtual IGB devices from e1000_hw.h ******************/
+-
+-#define E1000_DEV_ID_82576_VF 0x10CA
+-#define E1000_DEV_ID_82576_VF_HV 0x152D
+-#define E1000_DEV_ID_I350_VF 0x1520
+-#define E1000_DEV_ID_I350_VF_HV 0x152F
+-
+-RTE_PCI_DEV_ID_DECL_IGBVF(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_VF)
+-RTE_PCI_DEV_ID_DECL_IGBVF(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_VF_HV)
+-RTE_PCI_DEV_ID_DECL_IGBVF(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I350_VF)
+-RTE_PCI_DEV_ID_DECL_IGBVF(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I350_VF_HV)
+-
+-/*
+- * Undef all RTE_PCI_DEV_ID_DECL_* here.
+- */
+-#undef RTE_PCI_DEV_ID_DECL_IGB
+-#undef RTE_PCI_DEV_ID_DECL_IGBVF
+diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
+index 96acec5..bd803c0 100644
+--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
+@@ -76,7 +76,7 @@ static const char igb_driver_string[] =
+ static const char igb_copyright[] =
+ "Copyright (c) 2007-2013 Intel Corporation.";
+
+-static DEFINE_PCI_DEVICE_TABLE(igb_pci_tbl) = {
++DEFINE_PCI_DEVICE_TABLE(igb_pci_tbl) = {
+ { PCI_VDEVICE(INTEL, E1000_DEV_ID_I354_BACKPLANE_1GBPS) },
+ { PCI_VDEVICE(INTEL, E1000_DEV_ID_I354_SGMII) },
+ { PCI_VDEVICE(INTEL, E1000_DEV_ID_I354_BACKPLANE_2_5GBPS) },
+diff --git a/lib/librte_eal/linuxapp/kni/kni_misc.c b/lib/librte_eal/linuxapp/kni/kni_misc.c
+index 66bf519..67e9b7d 100644
+--- a/lib/librte_eal/linuxapp/kni/kni_misc.c
++++ b/lib/librte_eal/linuxapp/kni/kni_misc.c
+@@ -58,6 +58,7 @@ extern void ixgbe_kni_remove(struct pci_dev *pdev);
+ extern struct pci_device_id ixgbe_pci_tbl[];
+ extern int igb_kni_probe(struct pci_dev *pdev, struct net_device **lad_dev);
+ extern void igb_kni_remove(struct pci_dev *pdev);
++extern struct pci_device_id igb_pci_tbl[];
+
+ static int kni_open(struct inode *inode, struct file *file);
+ static int kni_release(struct inode *inode, struct file *file);
+@@ -356,15 +357,8 @@ kni_dev_remove(struct kni_dev *dev)
+
+ if (pci_match_id(ixgbe_pci_tbl, dev->pci_dev))
+ ixgbe_kni_remove(dev->pci_dev);
+-
+- switch (dev->device_id) {
+- #define RTE_PCI_DEV_ID_DECL_IGB(vend, dev) case (dev):
+- #include <rte_pci_dev_ids.h>
++ else if (pci_match_id(igb_pci_tbl, dev->pci_dev))
+ igb_kni_remove(dev->pci_dev);
+- break;
+- default:
+- break;
+- }
+
+ if (dev->net_dev) {
+ unregister_netdev(dev->net_dev);
+@@ -513,16 +507,10 @@ kni_ioctl_create(struct net *net,
+
+ if (pci_match_id(ixgbe_pci_tbl, found_pci))
+ ret = ixgbe_kni_probe(found_pci, &lad_dev);
+-
+- switch (dev_info.device_id) {
+- #define RTE_PCI_DEV_ID_DECL_IGB(vend, dev) case (dev):
+- #include <rte_pci_dev_ids.h>
++ else if (pci_match_id(igb_pci_tbl, found_pci))
+ ret = igb_kni_probe(found_pci, &lad_dev);
+- break;
+- default:
++ else
+ ret = -1;
+- break;
+- }
+
+ KNI_DBG("PCI found: pci=0x%p, lad_dev=0x%p\n",
+ pci, lad_dev);
+--
+1.9.1
+