summaryrefslogtreecommitdiffstats
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 @@
1From 368fd936258873ee848f2c265e4ffd8e5d21d20e Mon Sep 17 00:00:00 2001
2From: Ferruh Yigit <ferruh.yigit@intel.com>
3Date: Fri, 5 Aug 2016 15:09:30 +0100
4Subject: [PATCH 2/3] net/igb: move PCI device IDs from EAL
5
6Upstream-Status: Backport [http://dpdk.org/browse/dpdk/commit/?id=
7109febfe58f93c5b425772563c35d4414a1a2c1c]
8
9PCI device ids moved from common header into igb driver itself.
10
11KNI starts using pci_device_id from kni/ethtool/igb driver, this is only
12for KNI ethtool support, KNI data path is not affected.
13
14Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
15(cherry picked from commit 109febfe58f93c5b425772563c35d4414a1a2c1c)
16Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com>
17---
18 drivers/net/e1000/igb_ethdev.c | 55 +++++++++--
19 lib/librte_eal/common/include/rte_pci_dev_ids.h | 107 ---------------------
20 lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c | 2 +-
21 lib/librte_eal/linuxapp/kni/kni_misc.c | 20 +---
22 4 files changed, 50 insertions(+), 134 deletions(-)
23
24diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c
25index fbf4d09..4e9e6a3 100644
26--- a/drivers/net/e1000/igb_ethdev.c
27+++ b/drivers/net/e1000/igb_ethdev.c
28@@ -306,22 +306,57 @@ static enum e1000_fc_mode igb_fc_setting = e1000_fc_full;
29 * The set of PCI devices this driver supports
30 */
31 static const struct rte_pci_id pci_id_igb_map[] = {
32-
33-#define RTE_PCI_DEV_ID_DECL_IGB(vend, dev) {RTE_PCI_DEVICE(vend, dev)},
34-#include "rte_pci_dev_ids.h"
35-
36-{0},
37+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576) },
38+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576_FIBER) },
39+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576_SERDES) },
40+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576_QUAD_COPPER) },
41+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576_QUAD_COPPER_ET2) },
42+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576_NS) },
43+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576_NS_SERDES) },
44+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576_SERDES_QUAD) },
45+
46+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82575EB_COPPER) },
47+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82575EB_FIBER_SERDES) },
48+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82575GB_QUAD_COPPER) },
49+
50+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82580_COPPER) },
51+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82580_FIBER) },
52+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82580_SERDES) },
53+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82580_SGMII) },
54+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82580_COPPER_DUAL) },
55+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82580_QUAD_FIBER) },
56+
57+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I350_COPPER) },
58+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I350_FIBER) },
59+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I350_SERDES) },
60+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I350_SGMII) },
61+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I350_DA4) },
62+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I210_COPPER) },
63+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I210_COPPER_OEM1) },
64+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I210_COPPER_IT) },
65+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I210_FIBER) },
66+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I210_SERDES) },
67+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I210_SGMII) },
68+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I211_COPPER) },
69+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I354_BACKPLANE_1GBPS) },
70+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I354_SGMII) },
71+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I354_BACKPLANE_2_5GBPS) },
72+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_DH89XXCC_SGMII) },
73+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_DH89XXCC_SERDES) },
74+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_DH89XXCC_BACKPLANE) },
75+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_DH89XXCC_SFP) },
76+ { .vendor_id = 0, /* sentinel */ },
77 };
78
79 /*
80 * The set of PCI devices this driver supports (for 82576&I350 VF)
81 */
82 static const struct rte_pci_id pci_id_igbvf_map[] = {
83-
84-#define RTE_PCI_DEV_ID_DECL_IGBVF(vend, dev) {RTE_PCI_DEVICE(vend, dev)},
85-#include "rte_pci_dev_ids.h"
86-
87-{0},
88+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576_VF) },
89+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_82576_VF_HV) },
90+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I350_VF) },
91+ { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID, E1000_DEV_ID_I350_VF_HV) },
92+ { .vendor_id = 0, /* sentinel */ },
93 };
94
95 static const struct rte_eth_desc_lim rx_desc_lim = {
96diff --git a/lib/librte_eal/common/include/rte_pci_dev_ids.h b/lib/librte_eal/common/include/rte_pci_dev_ids.h
97index 1f9d372..1aae6f7 100644
98--- a/lib/librte_eal/common/include/rte_pci_dev_ids.h
99+++ b/lib/librte_eal/common/include/rte_pci_dev_ids.h
100@@ -57,114 +57,7 @@
101 *
102 */
103
104-#ifndef RTE_PCI_DEV_ID_DECL_IGB
105-#define RTE_PCI_DEV_ID_DECL_IGB(vend, dev)
106-#endif
107-
108-#ifndef RTE_PCI_DEV_ID_DECL_IGBVF
109-#define RTE_PCI_DEV_ID_DECL_IGBVF(vend, dev)
110-#endif
111-
112 #ifndef PCI_VENDOR_ID_INTEL
113 /** Vendor ID used by Intel devices */
114 #define PCI_VENDOR_ID_INTEL 0x8086
115 #endif
116-
117-/******************** Physical IGB devices from e1000_hw.h ********************/
118-
119-#define E1000_DEV_ID_82576 0x10C9
120-#define E1000_DEV_ID_82576_FIBER 0x10E6
121-#define E1000_DEV_ID_82576_SERDES 0x10E7
122-#define E1000_DEV_ID_82576_QUAD_COPPER 0x10E8
123-#define E1000_DEV_ID_82576_QUAD_COPPER_ET2 0x1526
124-#define E1000_DEV_ID_82576_NS 0x150A
125-#define E1000_DEV_ID_82576_NS_SERDES 0x1518
126-#define E1000_DEV_ID_82576_SERDES_QUAD 0x150D
127-#define E1000_DEV_ID_82575EB_COPPER 0x10A7
128-#define E1000_DEV_ID_82575EB_FIBER_SERDES 0x10A9
129-#define E1000_DEV_ID_82575GB_QUAD_COPPER 0x10D6
130-#define E1000_DEV_ID_82580_COPPER 0x150E
131-#define E1000_DEV_ID_82580_FIBER 0x150F
132-#define E1000_DEV_ID_82580_SERDES 0x1510
133-#define E1000_DEV_ID_82580_SGMII 0x1511
134-#define E1000_DEV_ID_82580_COPPER_DUAL 0x1516
135-#define E1000_DEV_ID_82580_QUAD_FIBER 0x1527
136-#define E1000_DEV_ID_I350_COPPER 0x1521
137-#define E1000_DEV_ID_I350_FIBER 0x1522
138-#define E1000_DEV_ID_I350_SERDES 0x1523
139-#define E1000_DEV_ID_I350_SGMII 0x1524
140-#define E1000_DEV_ID_I350_DA4 0x1546
141-#define E1000_DEV_ID_I210_COPPER 0x1533
142-#define E1000_DEV_ID_I210_COPPER_OEM1 0x1534
143-#define E1000_DEV_ID_I210_COPPER_IT 0x1535
144-#define E1000_DEV_ID_I210_FIBER 0x1536
145-#define E1000_DEV_ID_I210_SERDES 0x1537
146-#define E1000_DEV_ID_I210_SGMII 0x1538
147-#define E1000_DEV_ID_I210_COPPER_FLASHLESS 0x157B
148-#define E1000_DEV_ID_I210_SERDES_FLASHLESS 0x157C
149-#define E1000_DEV_ID_I211_COPPER 0x1539
150-#define E1000_DEV_ID_I354_BACKPLANE_1GBPS 0x1F40
151-#define E1000_DEV_ID_I354_SGMII 0x1F41
152-#define E1000_DEV_ID_I354_BACKPLANE_2_5GBPS 0x1F45
153-#define E1000_DEV_ID_DH89XXCC_SGMII 0x0438
154-#define E1000_DEV_ID_DH89XXCC_SERDES 0x043A
155-#define E1000_DEV_ID_DH89XXCC_BACKPLANE 0x043C
156-#define E1000_DEV_ID_DH89XXCC_SFP 0x0440
157-
158-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576)
159-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_FIBER)
160-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_SERDES)
161-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_QUAD_COPPER)
162-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_QUAD_COPPER_ET2)
163-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_NS)
164-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_NS_SERDES)
165-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_SERDES_QUAD)
166-
167-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82575EB_COPPER)
168-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82575EB_FIBER_SERDES)
169-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82575GB_QUAD_COPPER)
170-
171-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82580_COPPER)
172-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82580_FIBER)
173-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82580_SERDES)
174-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82580_SGMII)
175-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82580_COPPER_DUAL)
176-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82580_QUAD_FIBER)
177-
178-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I350_COPPER)
179-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I350_FIBER)
180-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I350_SERDES)
181-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I350_SGMII)
182-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I350_DA4)
183-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I210_COPPER)
184-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I210_COPPER_OEM1)
185-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I210_COPPER_IT)
186-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I210_FIBER)
187-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I210_SERDES)
188-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I210_SGMII)
189-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I211_COPPER)
190-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I354_BACKPLANE_1GBPS)
191-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I354_SGMII)
192-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I354_BACKPLANE_2_5GBPS)
193-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_DH89XXCC_SGMII)
194-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_DH89XXCC_SERDES)
195-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_DH89XXCC_BACKPLANE)
196-RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_DH89XXCC_SFP)
197-
198-/****************** Virtual IGB devices from e1000_hw.h ******************/
199-
200-#define E1000_DEV_ID_82576_VF 0x10CA
201-#define E1000_DEV_ID_82576_VF_HV 0x152D
202-#define E1000_DEV_ID_I350_VF 0x1520
203-#define E1000_DEV_ID_I350_VF_HV 0x152F
204-
205-RTE_PCI_DEV_ID_DECL_IGBVF(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_VF)
206-RTE_PCI_DEV_ID_DECL_IGBVF(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_VF_HV)
207-RTE_PCI_DEV_ID_DECL_IGBVF(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I350_VF)
208-RTE_PCI_DEV_ID_DECL_IGBVF(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I350_VF_HV)
209-
210-/*
211- * Undef all RTE_PCI_DEV_ID_DECL_* here.
212- */
213-#undef RTE_PCI_DEV_ID_DECL_IGB
214-#undef RTE_PCI_DEV_ID_DECL_IGBVF
215diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
216index 96acec5..bd803c0 100644
217--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
218+++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
219@@ -76,7 +76,7 @@ static const char igb_driver_string[] =
220 static const char igb_copyright[] =
221 "Copyright (c) 2007-2013 Intel Corporation.";
222
223-static DEFINE_PCI_DEVICE_TABLE(igb_pci_tbl) = {
224+DEFINE_PCI_DEVICE_TABLE(igb_pci_tbl) = {
225 { PCI_VDEVICE(INTEL, E1000_DEV_ID_I354_BACKPLANE_1GBPS) },
226 { PCI_VDEVICE(INTEL, E1000_DEV_ID_I354_SGMII) },
227 { PCI_VDEVICE(INTEL, E1000_DEV_ID_I354_BACKPLANE_2_5GBPS) },
228diff --git a/lib/librte_eal/linuxapp/kni/kni_misc.c b/lib/librte_eal/linuxapp/kni/kni_misc.c
229index 66bf519..67e9b7d 100644
230--- a/lib/librte_eal/linuxapp/kni/kni_misc.c
231+++ b/lib/librte_eal/linuxapp/kni/kni_misc.c
232@@ -58,6 +58,7 @@ extern void ixgbe_kni_remove(struct pci_dev *pdev);
233 extern struct pci_device_id ixgbe_pci_tbl[];
234 extern int igb_kni_probe(struct pci_dev *pdev, struct net_device **lad_dev);
235 extern void igb_kni_remove(struct pci_dev *pdev);
236+extern struct pci_device_id igb_pci_tbl[];
237
238 static int kni_open(struct inode *inode, struct file *file);
239 static int kni_release(struct inode *inode, struct file *file);
240@@ -356,15 +357,8 @@ kni_dev_remove(struct kni_dev *dev)
241
242 if (pci_match_id(ixgbe_pci_tbl, dev->pci_dev))
243 ixgbe_kni_remove(dev->pci_dev);
244-
245- switch (dev->device_id) {
246- #define RTE_PCI_DEV_ID_DECL_IGB(vend, dev) case (dev):
247- #include <rte_pci_dev_ids.h>
248+ else if (pci_match_id(igb_pci_tbl, dev->pci_dev))
249 igb_kni_remove(dev->pci_dev);
250- break;
251- default:
252- break;
253- }
254
255 if (dev->net_dev) {
256 unregister_netdev(dev->net_dev);
257@@ -513,16 +507,10 @@ kni_ioctl_create(struct net *net,
258
259 if (pci_match_id(ixgbe_pci_tbl, found_pci))
260 ret = ixgbe_kni_probe(found_pci, &lad_dev);
261-
262- switch (dev_info.device_id) {
263- #define RTE_PCI_DEV_ID_DECL_IGB(vend, dev) case (dev):
264- #include <rte_pci_dev_ids.h>
265+ else if (pci_match_id(igb_pci_tbl, found_pci))
266 ret = igb_kni_probe(found_pci, &lad_dev);
267- break;
268- default:
269+ else
270 ret = -1;
271- break;
272- }
273
274 KNI_DBG("PCI found: pci=0x%p, lad_dev=0x%p\n",
275 pci, lad_dev);
276--
2771.9.1
278