diff options
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.patch | 278 |
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 + |