diff options
author | Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> | 2016-10-18 23:22:30 +0800 |
---|---|---|
committer | Saul Wold <sgw@linux.intel.com> | 2016-10-18 12:02:17 -0700 |
commit | 485f82ab71604173b698b55a8f4495b3741ce538 (patch) | |
tree | de1754c490e503d6c8cb09d7c546c91ac22ba7f4 /common/recipes-extended/dpdk | |
parent | 6adafe510efbc9721f163adccbc7245e7751b730 (diff) | |
download | meta-intel-485f82ab71604173b698b55a8f4495b3741ce538.tar.gz |
dpdk: move dpdk from meta-isg to common
Since there is plan to merge meta-isg layer to common meta-intel
layer. So relocate dpdk v16.07 recipe from meta-isg layer to common
meta-intel layer.
Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Diffstat (limited to 'common/recipes-extended/dpdk')
14 files changed, 1253 insertions, 0 deletions
diff --git a/common/recipes-extended/dpdk/dpdk.inc b/common/recipes-extended/dpdk/dpdk.inc new file mode 100644 index 00000000..e90b13f7 --- /dev/null +++ b/common/recipes-extended/dpdk/dpdk.inc | |||
@@ -0,0 +1,152 @@ | |||
1 | DESCRIPTION = "Intel(r) Data Plane Development Kit" | ||
2 | HOMEPAGE = "http://dpdk.org" | ||
3 | LICENSE = "BSD & LGPLv2 & GPLv2" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=751419260aa954499f7abaabaa882bbe" | ||
5 | |||
6 | SRC_URI = "http://dpdk.org/browse/dpdk/snapshot/dpdk-${PV}.tar.gz;name=dpdk \ | ||
7 | file://dpdk-16.04-add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch \ | ||
8 | file://dpdk-16.07-add-sysroot-option-within-app-makefile.patch \ | ||
9 | file://dpdk-16.04-point-to-the-right-include-and-lib-path.patch \ | ||
10 | file://dpdk-16.04-Fix-for-misleading-indentation-error.patch \ | ||
11 | file://dpdk-16.07-dpdk-fix-installation-warning-and-issue.patch \ | ||
12 | file://dpdk-16.04-dpdk-fix-compilation-with-dynamic-libs.patch \ | ||
13 | file://dpdk-16.07-dpdk-fix-for-parellel-make-issue.patch \ | ||
14 | file://dpdk-16.07-net-ixgbe-move-PCI-device-IDs-from-EAL.patch \ | ||
15 | file://dpdk-16.07-net-igb-move-PCI-device-IDs-from-EAL.patch \ | ||
16 | file://dpdk-16.07-kni-fix-build-with-kernel-4.8.patch \ | ||
17 | " | ||
18 | |||
19 | COMPATIBLE_MACHINE = "crystalforest|intel-corei7-64" | ||
20 | |||
21 | # dpdk example apps dpdk_qat and vhost have dependancy on fuse and qat. | ||
22 | # fuse is in meta-filesystems and qat is not yet upstreamed. | ||
23 | # So adding mechanism to explicitly disable the use of fuse and qat. | ||
24 | # To enable, uncomment the below line or include in .bbappend. | ||
25 | # PACKAGECONFIG ?= " dpdk_qat vhost libvirt" | ||
26 | |||
27 | PACKAGECONFIG[dpdk_qat] = ",,virtual/qat" | ||
28 | PACKAGECONFIG[vhost] = ",,fuse" | ||
29 | PACKAGECONFIG[libvirt] = ",,libvirt" | ||
30 | |||
31 | export CONFIG_EXAMPLE_DPDK_QAT = "${@bb.utils.contains('PACKAGECONFIG', 'dpdk_qat', 'y', 'n', d)}" | ||
32 | export CONFIG_EXAMPLE_VM_POWER_MANAGER = "${@bb.utils.contains('PACKAGECONFIG', 'libvirt', 'y', 'n', d)}" | ||
33 | export CONFIG_VHOST_ENABLED = "${@bb.utils.contains('PACKAGECONFIG', 'vhost', 'y', 'n', d)}" | ||
34 | |||
35 | RDEPENDS_${PN} += "python-subprocess" | ||
36 | DEPENDS = "virtual/kernel" | ||
37 | do_configure[depends] += "virtual/kernel:do_shared_workdir" | ||
38 | |||
39 | inherit module | ||
40 | |||
41 | export MODULE_DIR="/lib/modules/${KERNEL_VERSION}/kernel/drivers/net" | ||
42 | export RTE_SDK = "${S}" | ||
43 | export RTE_TARGET="${@bb.utils.contains("TUNE_FEATURES", "corei7", "x86_64-ivshmem-linuxapp-gcc", "i686-native-linuxapp-gcc", d)}" | ||
44 | |||
45 | export ICP_ROOT = "${PKG_CONFIG_SYSROOT_DIR}/usr/include" | ||
46 | export ICP_LIB_ROOT= "${PKG_CONFIG_SYSROOT_DIR}/usr/lib" | ||
47 | export RTE_KERNELDIR = "${STAGING_KERNEL_DIR}" | ||
48 | export RTE_KERNELDIR_OUT = "${STAGING_KERNEL_BUILDDIR}" | ||
49 | export INSTALL_PATH = "${prefix}/share" | ||
50 | export RTE_OUTPUT = "${S}/${RTE_TARGET}" | ||
51 | export ETHTOOL_LIB_PATH = "${S}/examples/ethtool/lib/${RTE_TARGET}/" | ||
52 | export SYSROOTPATH = "--sysroot=${STAGING_DIR_HOST}" | ||
53 | export DPDK_TARGET_MACH = "${@get_dpdk_target_mach(bb,d)}" | ||
54 | export ICP_LAC_API_DIR = "${STAGING_DIR_TARGET}${includedir}/lac" | ||
55 | |||
56 | # The list of intel Comms platforms and their target machine | ||
57 | # process mapping. The supported target machine is listed under | ||
58 | # dpdk/mk/machine | ||
59 | def get_dpdk_target_mach(bb, d): | ||
60 | target_arch = d.getVar('MACHINE_ARCH', True) | ||
61 | multiarch_options = { | ||
62 | "mohonpeak64": "atm", | ||
63 | "mohonpeak32": "atm", | ||
64 | "crystalforest": "ivb", | ||
65 | "intel_corei7_64": "hsw", | ||
66 | } | ||
67 | |||
68 | if target_arch in multiarch_options : | ||
69 | return multiarch_options[target_arch] | ||
70 | return "" | ||
71 | |||
72 | do_configure () { | ||
73 | ############################################################# | ||
74 | ### default value for prefix is "usr", unsetting it, so it | ||
75 | ### will not be concatenated in ${RTE_TARGET}/Makefile | ||
76 | ### which will cause compilation failure | ||
77 | ############################################################# | ||
78 | unset prefix | ||
79 | |||
80 | # Fix-up CONFIG_RTE_MACHINE based on target machine | ||
81 | sed -e "s#CONFIG_RTE_MACHINE=\"native\"#CONFIG_RTE_MACHINE=\"${DPDK_TARGET_MACH}\"#" -i ${S}/config/defconfig_x86_64-native-linuxapp-gcc | ||
82 | sed -e "s#CONFIG_RTE_MACHINE=\"native\"#CONFIG_RTE_MACHINE=\"${DPDK_TARGET_MACH}\"#" -i ${S}/config/defconfig_i686-native-linuxapp-gcc | ||
83 | |||
84 | # Fix-up vhost configs based on package config | ||
85 | sed -e "s#CONFIG_RTE_KNI_VHOST=n#CONFIG_RTE_KNI_VHOST=${CONFIG_VHOST_ENABLED}#" -i ${S}/config/common_linuxapp | ||
86 | sed -e "s#CONFIG_RTE_KNI_VHOST_VNET_HDR_EN=n#CONFIG_RTE_KNI_VHOST_VNET_HDR_EN=${CONFIG_VHOST_ENABLED}#" -i ${S}/config/common_linuxapp | ||
87 | sed -e "s#CONFIG_RTE_LIBRTE_VHOST=n#CONFIG_RTE_LIBRTE_VHOST=${CONFIG_VHOST_ENABLED}#" -i ${S}/config/common_linuxapp | ||
88 | |||
89 | make O=$RTE_TARGET T=$RTE_TARGET config | ||
90 | } | ||
91 | |||
92 | do_compile () { | ||
93 | unset LDFLAGS TARGET_LDFLAGS BUILD_LDFLAGS | ||
94 | |||
95 | cd ${S}/${RTE_TARGET} | ||
96 | oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu" \ | ||
97 | EXTRA_CFLAGS="--sysroot=${STAGING_DIR_HOST} -I${STAGING_INCDIR}" \ | ||
98 | CROSS="${TARGET_PREFIX}" \ | ||
99 | prefix="" LDFLAGS="" WERROR_FLAGS="-w" V=1 | ||
100 | |||
101 | cd ${S}/examples/ | ||
102 | oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu" \ | ||
103 | EXTRA_CFLAGS="--sysroot=${STAGING_DIR_HOST} -I${STAGING_INCDIR}" \ | ||
104 | CROSS="${TARGET_PREFIX}" O="${S}/examples/$@/" | ||
105 | } | ||
106 | |||
107 | do_install () { | ||
108 | oe_runmake O=${RTE_OUTPUT} T= install-runtime DESTDIR=${D} | ||
109 | oe_runmake O=${RTE_OUTPUT} T= install-kmod DESTDIR=${D} kerneldir=${MODULE_DIR} | ||
110 | oe_runmake O=${RTE_OUTPUT} T= install-sdk DESTDIR=${D} | ||
111 | |||
112 | # Install examples | ||
113 | for dirname in ${S}/examples/* | ||
114 | do | ||
115 | install -m 0755 -d ${D}/${INSTALL_PATH}/examples/`basename ${dirname}` | ||
116 | |||
117 | for appname in `find ${dirname} -regex ".*${EXAMPLES_BUILD_DIR}\/app\/[-0-9a-zA-Z0-9/_]*$"` | ||
118 | do | ||
119 | install -m 755 ${appname} ${D}/${INSTALL_PATH}/examples/`basename ${dirname}`/ | ||
120 | done | ||
121 | done | ||
122 | } | ||
123 | |||
124 | PACKAGES += "${PN}-examples" | ||
125 | |||
126 | FILES_${PN}-dbg += " \ | ||
127 | ${INSTALL_PATH}/.debug \ | ||
128 | ${INSTALL_PATH}/examples/*/.debug \ | ||
129 | " | ||
130 | |||
131 | FILES_${PN}-doc += "\ | ||
132 | ${INSTALL_PATH}/doc \ | ||
133 | " | ||
134 | |||
135 | FILES_${PN}-dev += " \ | ||
136 | ${INSTALL_PATH}/${RTE_TARGET}/.config \ | ||
137 | ${includedir} \ | ||
138 | ${includedir}/${ARCHDIR} \ | ||
139 | ${includedir}/exec-env \ | ||
140 | ${INSTALL_PATH}/scripts/ \ | ||
141 | ${INSTALL_PATH}/${RTE_TARGET}/include \ | ||
142 | ${INSTALL_PATH}/${RTE_TARGET}/lib \ | ||
143 | " | ||
144 | |||
145 | FILES_${PN} += " ${INSTALL_PATH}/tools/ \ | ||
146 | ${prefix}/sbin/ \ | ||
147 | ${prefix}/bin/ \ | ||
148 | ${libdir}/ \ | ||
149 | " | ||
150 | FILES_${PN}-examples += " \ | ||
151 | ${INSTALL_PATH}/examples/* \ | ||
152 | " | ||
diff --git a/common/recipes-extended/dpdk/dpdk/dpdk-16.04-Fix-for-misleading-indentation-error.patch b/common/recipes-extended/dpdk/dpdk/dpdk-16.04-Fix-for-misleading-indentation-error.patch new file mode 100644 index 00000000..8786af7c --- /dev/null +++ b/common/recipes-extended/dpdk/dpdk/dpdk-16.04-Fix-for-misleading-indentation-error.patch | |||
@@ -0,0 +1,56 @@ | |||
1 | From 8cd0a16af531cca0af6b4f9b729c252b8bdbf8e2 Mon Sep 17 00:00:00 2001 | ||
2 | From: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> | ||
3 | Date: Tue, 5 Jul 2016 00:05:25 +0800 | ||
4 | Subject: [PATCH] Fix for misleading indentation error | ||
5 | |||
6 | fix the indentation of the code to match the block structure. This may cause | ||
7 | build errors if you have -Wall -Werror in your project. | ||
8 | |||
9 | Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> | ||
10 | --- | ||
11 | lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.c | 8 ++++---- | ||
12 | lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.c | 2 +- | ||
13 | 2 files changed, 5 insertions(+), 5 deletions(-) | ||
14 | |||
15 | diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.c | ||
16 | index df22470..ba28eba 100644 | ||
17 | --- a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.c | ||
18 | +++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.c | ||
19 | @@ -3302,8 +3302,8 @@ s32 e1000_read_phy_reg_mphy(struct e1000_hw *hw, u32 address, u32 *data) | ||
20 | /* Disable access to mPHY if it was originally disabled */ | ||
21 | if (locked) | ||
22 | ready = e1000_is_mphy_ready(hw); | ||
23 | - if (!ready) | ||
24 | - return -E1000_ERR_PHY; | ||
25 | + if (!ready) | ||
26 | + return -E1000_ERR_PHY; | ||
27 | E1000_WRITE_REG(hw, E1000_MPHY_ADDR_CTRL, | ||
28 | E1000_MPHY_DIS_ACCESS); | ||
29 | |||
30 | @@ -3367,8 +3367,8 @@ s32 e1000_write_phy_reg_mphy(struct e1000_hw *hw, u32 address, u32 data, | ||
31 | /* Disable access to mPHY if it was originally disabled */ | ||
32 | if (locked) | ||
33 | ready = e1000_is_mphy_ready(hw); | ||
34 | - if (!ready) | ||
35 | - return -E1000_ERR_PHY; | ||
36 | + if (!ready) | ||
37 | + return -E1000_ERR_PHY; | ||
38 | E1000_WRITE_REG(hw, E1000_MPHY_ADDR_CTRL, | ||
39 | E1000_MPHY_DIS_ACCESS); | ||
40 | |||
41 | diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.c b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.c | ||
42 | index 017dfe1..7248a7e 100644 | ||
43 | --- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.c | ||
44 | +++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.c | ||
45 | @@ -870,7 +870,7 @@ s32 ixgbe_setup_mac_link_82599(struct ixgbe_hw *hw, | ||
46 | if (speed & IXGBE_LINK_SPEED_10GB_FULL) | ||
47 | if (orig_autoc & IXGBE_AUTOC_KX4_SUPP) | ||
48 | autoc |= IXGBE_AUTOC_KX4_SUPP; | ||
49 | - if ((orig_autoc & IXGBE_AUTOC_KR_SUPP) && | ||
50 | + if ((orig_autoc & IXGBE_AUTOC_KR_SUPP) && | ||
51 | (hw->phy.smart_speed_active == false)) | ||
52 | autoc |= IXGBE_AUTOC_KR_SUPP; | ||
53 | if (speed & IXGBE_LINK_SPEED_1GB_FULL) | ||
54 | -- | ||
55 | 1.9.1 | ||
56 | |||
diff --git a/common/recipes-extended/dpdk/dpdk/dpdk-16.04-add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch b/common/recipes-extended/dpdk/dpdk/dpdk-16.04-add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch new file mode 100644 index 00000000..e446ce44 --- /dev/null +++ b/common/recipes-extended/dpdk/dpdk/dpdk-16.04-add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch | |||
@@ -0,0 +1,52 @@ | |||
1 | From 6c8d348190a8cf6c35111913cbf117ca98137e84 Mon Sep 17 00:00:00 2001 | ||
2 | From: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> | ||
3 | Date: Fri, 18 Dec 2015 18:30:47 +0800 | ||
4 | Subject: [PATCH] dpdk v2.2.0: add RTE_KERNELDIR_OUT to split kernel build | ||
5 | artifact | ||
6 | |||
7 | Introduce RTE_KERNELDIR_OUT to be the path to which kernel build | ||
8 | artifacts are located. This is for matching the workflow change | ||
9 | since Yocto Project v1.8 onwards whereby tmp/work-shared contains | ||
10 | separate directories for kernel source and kernel artifacts. | ||
11 | |||
12 | Upstream-Status: Inappropriate [configuration] | ||
13 | |||
14 | Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> | ||
15 | --- | ||
16 | mk/rte.module.mk | 6 +++--- | ||
17 | 1 file changed, 3 insertions(+), 3 deletions(-) | ||
18 | |||
19 | diff --git a/mk/rte.module.mk b/mk/rte.module.mk | ||
20 | index 53ed4fe..b7a014b 100644 | ||
21 | --- a/mk/rte.module.mk | ||
22 | +++ b/mk/rte.module.mk | ||
23 | @@ -77,7 +77,7 @@ build: _postbuild | ||
24 | # build module | ||
25 | $(MODULE).ko: $(SRCS_LINKS) | ||
26 | @if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi | ||
27 | - @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \ | ||
28 | + @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \ | ||
29 | CC="$(KERNELCC)" CROSS_COMPILE=$(CROSS) V=$(if $V,1,0) | ||
30 | |||
31 | # install module in $(RTE_OUTPUT)/kmod | ||
32 | @@ -88,7 +88,7 @@ $(RTE_OUTPUT)/kmod/$(MODULE).ko: $(MODULE).ko | ||
33 | |||
34 | # install module | ||
35 | modules_install: | ||
36 | - @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \ | ||
37 | + @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \ | ||
38 | modules_install | ||
39 | |||
40 | .PHONY: clean | ||
41 | @@ -98,7 +98,7 @@ clean: _postclean | ||
42 | .PHONY: doclean | ||
43 | doclean: | ||
44 | @if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi | ||
45 | - $(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) clean | ||
46 | + $(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) clean | ||
47 | @$(foreach FILE,$(SRCS-y) $(SRCS-n) $(SRCS-),\ | ||
48 | if [ -h $(notdir $(FILE)) ]; then rm -f $(notdir $(FILE)) ; fi ;) | ||
49 | @if [ -h $(notdir Makefile) ]; then rm -f $(notdir Makefile) ; fi | ||
50 | -- | ||
51 | 1.9.1 | ||
52 | |||
diff --git a/common/recipes-extended/dpdk/dpdk/dpdk-16.04-add-config-variable-to-enable-disable-dpdk_qat.patch b/common/recipes-extended/dpdk/dpdk/dpdk-16.04-add-config-variable-to-enable-disable-dpdk_qat.patch new file mode 100644 index 00000000..cd517052 --- /dev/null +++ b/common/recipes-extended/dpdk/dpdk/dpdk-16.04-add-config-variable-to-enable-disable-dpdk_qat.patch | |||
@@ -0,0 +1,31 @@ | |||
1 | From a424a79b1422f1877de3ee7aee6f781aeacc3630 Mon Sep 17 00:00:00 2001 | ||
2 | From: Anuj Mittal <anujx.mittal@intel.com> | ||
3 | Date: Tue, 18 Aug 2015 12:36:02 +0800 | ||
4 | Subject: [PATCH] examples: add config variable to enable/disable dpdk_qat | ||
5 | |||
6 | Upstream-Status: Inappropriate [configuration] | ||
7 | |||
8 | Add CONFIG_EXAMPLE_DPDK_QAT to control compilation of dpdk_qat | ||
9 | example by PACKAGECONFIG | ||
10 | |||
11 | Signed-off-by: Anuj Mittal <anujx.mittal@intel.com> | ||
12 | --- | ||
13 | examples/Makefile | 2 +- | ||
14 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
15 | |||
16 | diff --git a/examples/Makefile b/examples/Makefile | ||
17 | index b4eddbd..1bc14b0 100644 | ||
18 | --- a/examples/Makefile | ||
19 | +++ b/examples/Makefile | ||
20 | @@ -41,7 +41,7 @@ DIRS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += bond | ||
21 | DIRS-y += cmdline | ||
22 | DIRS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) += distributor | ||
23 | ifneq ($(ICP_ROOT),) | ||
24 | -DIRS-y += dpdk_qat | ||
25 | +DIRS-$(CONFIG_EXAMPLE_DPDK_QAT) += dpdk_qat | ||
26 | endif | ||
27 | DIRS-y += exception_path | ||
28 | DIRS-y += helloworld | ||
29 | -- | ||
30 | 1.7.9.5 | ||
31 | |||
diff --git a/common/recipes-extended/dpdk/dpdk/dpdk-16.04-dpdk-enable-ip_fragmentation-in-common_base-config.patch b/common/recipes-extended/dpdk/dpdk/dpdk-16.04-dpdk-enable-ip_fragmentation-in-common_base-config.patch new file mode 100644 index 00000000..3719aa78 --- /dev/null +++ b/common/recipes-extended/dpdk/dpdk/dpdk-16.04-dpdk-enable-ip_fragmentation-in-common_base-config.patch | |||
@@ -0,0 +1,33 @@ | |||
1 | From f7be643cc62860a986c9e0aec990c90bfc58a941 Mon Sep 17 00:00:00 2001 | ||
2 | From: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> | ||
3 | Date: Fri, 1 Apr 2016 17:31:55 +0800 | ||
4 | Subject: [PATCH] dpdk: enable ip_fragmentation in common_base config | ||
5 | |||
6 | Upstream-Status: Inappropriate [Configuration] | ||
7 | |||
8 | This configuration need to set for ip_fragmentation application. | ||
9 | |||
10 | Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> | ||
11 | --- | ||
12 | config/common_base | 5 +++++ | ||
13 | 1 file changed, 5 insertions(+) | ||
14 | |||
15 | diff --git a/config/common_base b/config/common_base | ||
16 | index abd6a64..90259f0 100644 | ||
17 | --- a/config/common_base | ||
18 | +++ b/config/common_base | ||
19 | @@ -442,6 +442,11 @@ CONFIG_RTE_LIBRTE_POWER_DEBUG=n | ||
20 | CONFIG_RTE_MAX_LCORE_FREQS=64 | ||
21 | |||
22 | # | ||
23 | +# Compile ip_fragmentation | ||
24 | +# | ||
25 | +CONFIG_RTE_IP_FRAG=y | ||
26 | + | ||
27 | +# | ||
28 | # Compile librte_net | ||
29 | # | ||
30 | CONFIG_RTE_LIBRTE_NET=y | ||
31 | -- | ||
32 | 1.9.1 | ||
33 | |||
diff --git a/common/recipes-extended/dpdk/dpdk/dpdk-16.04-dpdk-fix-compilation-with-dynamic-libs.patch b/common/recipes-extended/dpdk/dpdk/dpdk-16.04-dpdk-fix-compilation-with-dynamic-libs.patch new file mode 100644 index 00000000..4254d073 --- /dev/null +++ b/common/recipes-extended/dpdk/dpdk/dpdk-16.04-dpdk-fix-compilation-with-dynamic-libs.patch | |||
@@ -0,0 +1,30 @@ | |||
1 | From 8ce0e3249942a90f733bb2113e70e5a90ae67b00 Mon Sep 17 00:00:00 2001 | ||
2 | From: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> | ||
3 | Date: Thu, 21 Jul 2016 05:53:52 +0800 | ||
4 | Subject: [PATCH 1/2] dpdk: fix compilation with dynamic libs | ||
5 | |||
6 | Upstream-Status: Inappropriate [Configuration] | ||
7 | |||
8 | Ensure that the correct cflags are being used. | ||
9 | |||
10 | Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> | ||
11 | --- | ||
12 | mk/rte.lib.mk | 2 +- | ||
13 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
14 | |||
15 | diff --git a/mk/rte.lib.mk b/mk/rte.lib.mk | ||
16 | index 8f7e021..42610c9 100644 | ||
17 | --- a/mk/rte.lib.mk | ||
18 | +++ b/mk/rte.lib.mk | ||
19 | @@ -70,7 +70,7 @@ exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1)))) | ||
20 | |||
21 | ifeq ($(LINK_USING_CC),1) | ||
22 | # Override the definition of LD here, since we're linking with CC | ||
23 | -LD := $(CC) $(CPU_CFLAGS) | ||
24 | +LD := $(CC) $(CPU_CFLAGS) $(EXTRA_CFLAGS) | ||
25 | _CPU_LDFLAGS := $(call linkerprefix,$(CPU_LDFLAGS)) | ||
26 | override EXTRA_LDFLAGS := $(call linkerprefix,$(EXTRA_LDFLAGS)) | ||
27 | else | ||
28 | -- | ||
29 | 1.9.1 | ||
30 | |||
diff --git a/common/recipes-extended/dpdk/dpdk/dpdk-16.04-point-to-the-right-include-and-lib-path.patch b/common/recipes-extended/dpdk/dpdk/dpdk-16.04-point-to-the-right-include-and-lib-path.patch new file mode 100644 index 00000000..75bb517d --- /dev/null +++ b/common/recipes-extended/dpdk/dpdk/dpdk-16.04-point-to-the-right-include-and-lib-path.patch | |||
@@ -0,0 +1,43 @@ | |||
1 | From 928595c80ae28d19861d7e76ed898a8fb3f2c1dc Mon Sep 17 00:00:00 2001 | ||
2 | From: Anuj Mittal <anujx.mittal@intel.com> | ||
3 | Date: Fri, 24 Jul 2015 23:57:17 +0800 | ||
4 | Subject: [PATCH] dpdk: point to the right include and lib path | ||
5 | |||
6 | Upstream-Status: Inappropriate [Configuration] | ||
7 | |||
8 | Make sure that we point to the right location of qat | ||
9 | lac headers and library. | ||
10 | |||
11 | Signed-off-by: Anuj Mittal <anujx.mittal@intel.com> | ||
12 | --- | ||
13 | examples/dpdk_qat/Makefile | 7 ++----- | ||
14 | 1 file changed, 2 insertions(+), 5 deletions(-) | ||
15 | |||
16 | diff --git a/examples/dpdk_qat/Makefile b/examples/dpdk_qat/Makefile | ||
17 | index f1e06a1..5b906f7 100644 | ||
18 | --- a/examples/dpdk_qat/Makefile | ||
19 | +++ b/examples/dpdk_qat/Makefile | ||
20 | @@ -66,18 +66,15 @@ SRCS-y := main.c crypto.c | ||
21 | |||
22 | CFLAGS += -O3 | ||
23 | CFLAGS += $(WERROR_FLAGS) | ||
24 | -CFLAGS += -I$(ICP_ROOT)/quickassist/include \ | ||
25 | - -I$(ICP_ROOT)/quickassist/include/lac \ | ||
26 | - -I$(ICP_ROOT)/quickassist/lookaside/access_layer/include | ||
27 | +CFLAGS += -I$(ICP_LAC_API_DIR) | ||
28 | |||
29 | # From CRF 1.2 driver, library was renamed to libicp_qa_al.a | ||
30 | ifneq ($(wildcard $(ICP_ROOT)/build/icp_qa_al.a),) | ||
31 | ICP_LIBRARY_PATH = $(ICP_ROOT)/build/icp_qa_al.a | ||
32 | else | ||
33 | -ICP_LIBRARY_PATH = $(ICP_ROOT)/build/libicp_qa_al.a | ||
34 | +ICP_LIBRARY_PATH = $(ICP_LIB_ROOT)/libicp_qa_al.a | ||
35 | endif | ||
36 | |||
37 | -LDLIBS += -L$(ICP_ROOT)/build | ||
38 | LDLIBS += $(ICP_LIBRARY_PATH) \ | ||
39 | -lz \ | ||
40 | -losal \ | ||
41 | -- | ||
42 | 1.7.9.5 | ||
43 | |||
diff --git a/common/recipes-extended/dpdk/dpdk/dpdk-16.07-add-sysroot-option-within-app-makefile.patch b/common/recipes-extended/dpdk/dpdk/dpdk-16.07-add-sysroot-option-within-app-makefile.patch new file mode 100644 index 00000000..a4c47112 --- /dev/null +++ b/common/recipes-extended/dpdk/dpdk/dpdk-16.07-add-sysroot-option-within-app-makefile.patch | |||
@@ -0,0 +1,32 @@ | |||
1 | From a33a9e7559b59bc5fb0988af85062436ec4389a4 Mon Sep 17 00:00:00 2001 | ||
2 | From: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> | ||
3 | Date: Fri, 19 Aug 2016 11:57:49 +0800 | ||
4 | Subject: [PATCH] dpdk: add --sysroot option within app makefile | ||
5 | |||
6 | Upstream-Status: Inappropriate [configuration] | ||
7 | |||
8 | rte.app.mk has been changed to add -Wl, to all items listed | ||
9 | under EXTRA_LDFLAGS. It causes --sysroot=<path> to not setup | ||
10 | correctly when we depends on gcc to setup for GNU ld. | ||
11 | |||
12 | Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> | ||
13 | --- | ||
14 | mk/rte.app.mk | 2 +- | ||
15 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
16 | |||
17 | diff --git a/mk/rte.app.mk b/mk/rte.app.mk | ||
18 | index eb28e11..296c8c7 100644 | ||
19 | --- a/mk/rte.app.mk | ||
20 | +++ b/mk/rte.app.mk | ||
21 | @@ -195,7 +195,7 @@ exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1)))) | ||
22 | ifeq ($(LINK_USING_CC),1) | ||
23 | O_TO_EXE = $(CC) -o $@ $(CFLAGS) $(OBJS-y) $(call linkerprefix, \ | ||
24 | $(LDLIBS) $(LDFLAGS) $(LDFLAGS_$(@)) $(EXTRA_LDFLAGS) \ | ||
25 | - $(MAPFLAGS)) | ||
26 | + $(MAPFLAGS)) $(SYSROOTPATH) | ||
27 | else | ||
28 | O_TO_EXE = $(LD) -o $@ $(OBJS-y) \ | ||
29 | $(LDLIBS) $(LDFLAGS) $(LDFLAGS_$(@)) $(EXTRA_LDFLAGS) \ | ||
30 | -- | ||
31 | 1.9.1 | ||
32 | |||
diff --git a/common/recipes-extended/dpdk/dpdk/dpdk-16.07-dpdk-fix-for-parellel-make-issue.patch b/common/recipes-extended/dpdk/dpdk/dpdk-16.07-dpdk-fix-for-parellel-make-issue.patch new file mode 100644 index 00000000..e17d80d1 --- /dev/null +++ b/common/recipes-extended/dpdk/dpdk/dpdk-16.07-dpdk-fix-for-parellel-make-issue.patch | |||
@@ -0,0 +1,42 @@ | |||
1 | From 4cdcb5ea4af9677677a007c4f9b286948123be87 Mon Sep 17 00:00:00 2001 | ||
2 | From: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> | ||
3 | Date: Fri, 2 Sep 2016 15:48:52 +0800 | ||
4 | Subject: [PATCH] dpdk: fix for parellel make issue | ||
5 | |||
6 | To make sure that the path of libraries should be correct and | ||
7 | libraries will be build before, And available at the time of | ||
8 | linking example apps. | ||
9 | |||
10 | Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> | ||
11 | --- | ||
12 | examples/Makefile | 1 + | ||
13 | examples/ethtool/ethtool-app/Makefile | 1 + | ||
14 | 2 files changed, 2 insertions(+) | ||
15 | |||
16 | diff --git a/examples/Makefile b/examples/Makefile | ||
17 | index 18b41b9..c7c2beb 100644 | ||
18 | --- a/examples/Makefile | ||
19 | +++ b/examples/Makefile | ||
20 | @@ -43,6 +43,7 @@ DIRS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) += distributor | ||
21 | ifneq ($(ICP_ROOT),) | ||
22 | DIRS-y += dpdk_qat | ||
23 | endif | ||
24 | +DEPDIRS-y += examples/ethtool/lib | ||
25 | DIRS-y += ethtool | ||
26 | DIRS-y += exception_path | ||
27 | DIRS-y += helloworld | ||
28 | diff --git a/examples/ethtool/ethtool-app/Makefile b/examples/ethtool/ethtool-app/Makefile | ||
29 | index 09c66ad..ec068e6 100644 | ||
30 | --- a/examples/ethtool/ethtool-app/Makefile | ||
31 | +++ b/examples/ethtool/ethtool-app/Makefile | ||
32 | @@ -47,6 +47,7 @@ SRCS-y := main.c ethapp.c | ||
33 | CFLAGS += -O3 -D_GNU_SOURCE -pthread -I$(SRCDIR)/../lib | ||
34 | CFLAGS += $(WERROR_FLAGS) | ||
35 | |||
36 | +LDLIBS += -L$(ETHTOOL_LIB_PATH)/ | ||
37 | LDLIBS += -L$(subst ethtool-app,lib,$(RTE_OUTPUT))/lib | ||
38 | LDLIBS += -lrte_ethtool | ||
39 | |||
40 | -- | ||
41 | 1.9.1 | ||
42 | |||
diff --git a/common/recipes-extended/dpdk/dpdk/dpdk-16.07-dpdk-fix-installation-warning-and-issue.patch b/common/recipes-extended/dpdk/dpdk/dpdk-16.07-dpdk-fix-installation-warning-and-issue.patch new file mode 100644 index 00000000..9fc30381 --- /dev/null +++ b/common/recipes-extended/dpdk/dpdk/dpdk-16.07-dpdk-fix-installation-warning-and-issue.patch | |||
@@ -0,0 +1,77 @@ | |||
1 | From 7af593cfca897a0f17d33aba95dd3e3d22a65444 Mon Sep 17 00:00:00 2001 | ||
2 | From: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> | ||
3 | Date: Fri, 19 Aug 2016 11:50:46 +0800 | ||
4 | Subject: [PATCH] dpdk: fix installation warning and issue | ||
5 | |||
6 | Upstream-Status: Inappropriate [configuration] | ||
7 | |||
8 | Ensure that all compiled libs should be installed to correct location. | ||
9 | For cross compiling cp -r and extra tar flags used to avoid QA warning | ||
10 | [host-user-contaminated]. | ||
11 | Added excluded files from bin and removing mk and app/dpdk-pmdinfogen files | ||
12 | installation since it is not needed as a part of image. | ||
13 | |||
14 | Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> | ||
15 | --- | ||
16 | mk/rte.sdkinstall.mk | 25 ++++++++++--------------- | ||
17 | 1 file changed, 10 insertions(+), 15 deletions(-) | ||
18 | |||
19 | diff --git a/mk/rte.sdkinstall.mk b/mk/rte.sdkinstall.mk | ||
20 | index 5217063..7036a32 100644 | ||
21 | --- a/mk/rte.sdkinstall.mk | ||
22 | +++ b/mk/rte.sdkinstall.mk | ||
23 | @@ -114,16 +114,13 @@ endif | ||
24 | |||
25 | install-runtime: | ||
26 | $(Q)$(call rte_mkdir, $(DESTDIR)$(libdir)) | ||
27 | - $(Q)cp -a $O/lib/* $(DESTDIR)$(libdir) | ||
28 | + $(Q)cp -r $O/lib/* $(DESTDIR)$(libdir) | ||
29 | $(Q)$(call rte_mkdir, $(DESTDIR)$(bindir)) | ||
30 | - $(Q)tar -cf - -C $O --exclude 'app/*.map' \ | ||
31 | - --exclude app/dpdk-pmdinfogen \ | ||
32 | - --exclude 'app/cmdline*' --exclude app/test \ | ||
33 | - --exclude app/testacl --exclude app/testpipeline app | \ | ||
34 | - tar -xf - -C $(DESTDIR)$(bindir) --strip-components=1 \ | ||
35 | - --keep-newer-files --warning=no-ignore-newer | ||
36 | + $(Q)tar -cf - -C $O --exclude app/dpdk-pmdinfogen app | \ | ||
37 | + tar -xf - -C $(DESTDIR)$(bindir) --no-same-owner --no-same-permissions \ | ||
38 | + --strip-components=1 --keep-newer-files --warning=no-ignore-newer | ||
39 | $(Q)$(call rte_mkdir, $(DESTDIR)$(datadir)) | ||
40 | - $(Q)cp -a $(RTE_SDK)/tools $(DESTDIR)$(datadir) | ||
41 | + $(Q)cp -r $(RTE_SDK)/tools $(DESTDIR)$(datadir) | ||
42 | $(Q)$(call rte_symlink, $(DESTDIR)$(datadir)/tools/dpdk-setup.sh, \ | ||
43 | $(DESTDIR)$(datadir)/tools/setup.sh) | ||
44 | $(Q)$(call rte_symlink, $(DESTDIR)$(datadir)/tools/dpdk-devbind.py, \ | ||
45 | @@ -137,7 +134,7 @@ install-runtime: | ||
46 | install-kmod: | ||
47 | ifneq ($(wildcard $O/kmod/*),) | ||
48 | $(Q)$(call rte_mkdir, $(DESTDIR)$(kerneldir)) | ||
49 | - $(Q)cp -a $O/kmod/* $(DESTDIR)$(kerneldir) | ||
50 | + $(Q)cp -r $O/kmod/* $(DESTDIR)$(kerneldir) | ||
51 | endif | ||
52 | |||
53 | install-sdk: | ||
54 | @@ -146,11 +143,9 @@ install-sdk: | ||
55 | tar -xf - -C $(DESTDIR)$(includedir) --strip-components=1 \ | ||
56 | --keep-newer-files --warning=no-ignore-newer | ||
57 | $(Q)$(call rte_mkdir, $(DESTDIR)$(sdkdir)) | ||
58 | - $(Q)cp -a $(RTE_SDK)/mk $(DESTDIR)$(sdkdir) | ||
59 | - $(Q)cp -a $(RTE_SDK)/scripts $(DESTDIR)$(sdkdir) | ||
60 | - $(Q)$(call rte_mkdir, $(DESTDIR)$(targetdir)/app) | ||
61 | - $(Q)cp -a $O/.config $(DESTDIR)$(targetdir) | ||
62 | - $(Q)cp -a $O/app/dpdk-pmdinfogen $(DESTDIR)$(targetdir)/app | ||
63 | + $(Q)cp -r $(RTE_SDK)/scripts $(DESTDIR)$(sdkdir) | ||
64 | + $(Q)$(call rte_mkdir, $(DESTDIR)$(targetdir)) | ||
65 | + $(Q)cp -r $O/.config $(DESTDIR)$(targetdir) | ||
66 | $(Q)$(call rte_symlink, $(DESTDIR)$(includedir), $(DESTDIR)$(targetdir)/include) | ||
67 | $(Q)$(call rte_symlink, $(DESTDIR)$(libdir), $(DESTDIR)$(targetdir)/lib) | ||
68 | |||
69 | @@ -166,4 +161,4 @@ ifneq ($(wildcard $O/doc/*/*/*pdf),) | ||
70 | $(Q)cp -a $O/doc/*/*/*pdf $(DESTDIR)$(docdir)/guides | ||
71 | endif | ||
72 | $(Q)$(call rte_mkdir, $(DESTDIR)$(datadir)) | ||
73 | - $(Q)cp -a $(RTE_SDK)/examples $(DESTDIR)$(datadir) | ||
74 | + $(Q)cp -r $(RTE_SDK)/examples $(DESTDIR)$(datadir) | ||
75 | -- | ||
76 | 1.9.1 | ||
77 | |||
diff --git a/common/recipes-extended/dpdk/dpdk/dpdk-16.07-kni-fix-build-with-kernel-4.8.patch b/common/recipes-extended/dpdk/dpdk/dpdk-16.07-kni-fix-build-with-kernel-4.8.patch new file mode 100644 index 00000000..f7938c78 --- /dev/null +++ b/common/recipes-extended/dpdk/dpdk/dpdk-16.07-kni-fix-build-with-kernel-4.8.patch | |||
@@ -0,0 +1,55 @@ | |||
1 | From d1807cc225db36a467a9ae81ac23a6eb7368730e Mon Sep 17 00:00:00 2001 | ||
2 | From: Ferruh Yigit <ferruh.yigit@intel.com> | ||
3 | Date: Thu, 8 Sep 2016 19:32:09 +0100 | ||
4 | Subject: [PATCH 3/3] kni: fix build with kernel 4.8 | ||
5 | |||
6 | Upstream-Status: Backport [http://dpdk.org/browse/dpdk/commit/?id= | ||
7 | 7f5565592c5ab2f3541951d2b4e65188d01d5d00] | ||
8 | |||
9 | Linux kernel v4.8 removes macro DEFINE_PCI_DEVICE_TABLE | ||
10 | |||
11 | Linux: 7e9321599011 ("treewide: remove references to the now unnecessary | ||
12 | DEFINE_PCI_DEVICE_TABLE") | ||
13 | |||
14 | Replaced macro with its value in kni ethtool drivers. | ||
15 | |||
16 | Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> | ||
17 | Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> | ||
18 | Acked-by: Christian Ehrhardt <christian.ehrhardt@canonical.com> | ||
19 | Acked-by: Stephen Hemminger <stephen@networkplumber.org> | ||
20 | (cherry picked from commit 7f5565592c5ab2f3541951d2b4e65188d01d5d00) | ||
21 | Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> | ||
22 | --- | ||
23 | lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c | 2 +- | ||
24 | lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_main.c | 2 +- | ||
25 | 2 files changed, 2 insertions(+), 2 deletions(-) | ||
26 | |||
27 | diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c | ||
28 | index bd803c0..efd39c6 100644 | ||
29 | --- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c | ||
30 | +++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c | ||
31 | @@ -76,7 +76,7 @@ static const char igb_driver_string[] = | ||
32 | static const char igb_copyright[] = | ||
33 | "Copyright (c) 2007-2013 Intel Corporation."; | ||
34 | |||
35 | -DEFINE_PCI_DEVICE_TABLE(igb_pci_tbl) = { | ||
36 | +const struct pci_device_id igb_pci_tbl[] = { | ||
37 | { PCI_VDEVICE(INTEL, E1000_DEV_ID_I354_BACKPLANE_1GBPS) }, | ||
38 | { PCI_VDEVICE(INTEL, E1000_DEV_ID_I354_SGMII) }, | ||
39 | { PCI_VDEVICE(INTEL, E1000_DEV_ID_I354_BACKPLANE_2_5GBPS) }, | ||
40 | diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_main.c b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_main.c | ||
41 | index 92fc9fc..238028d 100644 | ||
42 | --- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_main.c | ||
43 | +++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_main.c | ||
44 | @@ -86,7 +86,7 @@ const char ixgbe_driver_version[] = DRV_VERSION; | ||
45 | * { Vendor ID, Device ID, SubVendor ID, SubDevice ID, | ||
46 | * Class, Class Mask, private data (not used) } | ||
47 | */ | ||
48 | -DEFINE_PCI_DEVICE_TABLE(ixgbe_pci_tbl) = { | ||
49 | +const struct pci_device_id ixgbe_pci_tbl[] = { | ||
50 | {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_82598)}, | ||
51 | {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_82598AF_DUAL_PORT)}, | ||
52 | {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_82598AF_SINGLE_PORT)}, | ||
53 | -- | ||
54 | 1.9.1 | ||
55 | |||
diff --git a/common/recipes-extended/dpdk/dpdk/dpdk-16.07-net-igb-move-PCI-device-IDs-from-EAL.patch b/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/common/recipes-extended/dpdk/dpdk/dpdk-16.07-net-igb-move-PCI-device-IDs-from-EAL.patch | |||
@@ -0,0 +1,278 @@ | |||
1 | From 368fd936258873ee848f2c265e4ffd8e5d21d20e Mon Sep 17 00:00:00 2001 | ||
2 | From: Ferruh Yigit <ferruh.yigit@intel.com> | ||
3 | Date: Fri, 5 Aug 2016 15:09:30 +0100 | ||
4 | Subject: [PATCH 2/3] net/igb: move PCI device IDs from EAL | ||
5 | |||
6 | Upstream-Status: Backport [http://dpdk.org/browse/dpdk/commit/?id= | ||
7 | 109febfe58f93c5b425772563c35d4414a1a2c1c] | ||
8 | |||
9 | PCI device ids moved from common header into igb driver itself. | ||
10 | |||
11 | KNI starts using pci_device_id from kni/ethtool/igb driver, this is only | ||
12 | for KNI ethtool support, KNI data path is not affected. | ||
13 | |||
14 | Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> | ||
15 | (cherry picked from commit 109febfe58f93c5b425772563c35d4414a1a2c1c) | ||
16 | Signed-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 | |||
24 | diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c | ||
25 | index 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 = { | ||
96 | diff --git a/lib/librte_eal/common/include/rte_pci_dev_ids.h b/lib/librte_eal/common/include/rte_pci_dev_ids.h | ||
97 | index 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 | ||
215 | diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c | ||
216 | index 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) }, | ||
228 | diff --git a/lib/librte_eal/linuxapp/kni/kni_misc.c b/lib/librte_eal/linuxapp/kni/kni_misc.c | ||
229 | index 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 | -- | ||
277 | 1.9.1 | ||
278 | |||
diff --git a/common/recipes-extended/dpdk/dpdk/dpdk-16.07-net-ixgbe-move-PCI-device-IDs-from-EAL.patch b/common/recipes-extended/dpdk/dpdk/dpdk-16.07-net-ixgbe-move-PCI-device-IDs-from-EAL.patch new file mode 100644 index 00000000..d8b04a9b --- /dev/null +++ b/common/recipes-extended/dpdk/dpdk/dpdk-16.07-net-ixgbe-move-PCI-device-IDs-from-EAL.patch | |||
@@ -0,0 +1,356 @@ | |||
1 | From 11b4f5db07e4e48d1548671ac44f3d328523e93d Mon Sep 17 00:00:00 2001 | ||
2 | From: Ferruh Yigit <ferruh.yigit@intel.com> | ||
3 | Date: Fri, 5 Aug 2016 15:09:29 +0100 | ||
4 | Subject: [PATCH 1/3] net/ixgbe: move PCI device IDs from EAL | ||
5 | |||
6 | Upstream-Status: Backport [http://dpdk.org/browse/dpdk/commit/?id= | ||
7 | 221fba3b987c49964aa2b3d14d7a07397bebdf73] | ||
8 | |||
9 | PCI device ids moved from common header into ixgbe driver itself. | ||
10 | |||
11 | KNI starts using pci_device_id from kni/ethtool/ixgbe driver, this is | ||
12 | only for KNI ethtool support, KNI data path is not affected. | ||
13 | |||
14 | Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> | ||
15 | (cherry picked from commit 221fba3b987c49964aa2b3d14d7a07397bebdf73) | ||
16 | Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> | ||
17 | --- | ||
18 | drivers/net/ixgbe/ixgbe_ethdev.c | 79 ++++++++++-- | ||
19 | lib/librte_eal/common/include/rte_pci_dev_ids.h | 156 ------------------------ | ||
20 | lib/librte_eal/linuxapp/kni/kni_misc.c | 17 ++- | ||
21 | 3 files changed, 76 insertions(+), 176 deletions(-) | ||
22 | |||
23 | diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c | ||
24 | index d478a15..fb618ef 100644 | ||
25 | --- a/drivers/net/ixgbe/ixgbe_ethdev.c | ||
26 | +++ b/drivers/net/ixgbe/ixgbe_ethdev.c | ||
27 | @@ -429,23 +429,80 @@ static int ixgbe_dev_udp_tunnel_port_del(struct rte_eth_dev *dev, | ||
28 | * The set of PCI devices this driver supports | ||
29 | */ | ||
30 | static const struct rte_pci_id pci_id_ixgbe_map[] = { | ||
31 | - | ||
32 | -#define RTE_PCI_DEV_ID_DECL_IXGBE(vend, dev) {RTE_PCI_DEVICE(vend, dev)}, | ||
33 | -#include "rte_pci_dev_ids.h" | ||
34 | - | ||
35 | -{ .vendor_id = 0, /* sentinel */ }, | ||
36 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598) }, | ||
37 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598_BX) }, | ||
38 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598AF_DUAL_PORT) }, | ||
39 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598AF_SINGLE_PORT) }, | ||
40 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598AT) }, | ||
41 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598AT2) }, | ||
42 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598EB_SFP_LOM) }, | ||
43 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598EB_CX4) }, | ||
44 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598_CX4_DUAL_PORT) }, | ||
45 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598_DA_DUAL_PORT) }, | ||
46 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598_SR_DUAL_PORT_EM) }, | ||
47 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598EB_XF_LR) }, | ||
48 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_KX4) }, | ||
49 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_KX4_MEZZ) }, | ||
50 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_KR) }, | ||
51 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_COMBO_BACKPLANE) }, | ||
52 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_SUBDEV_ID_82599_KX4_KR_MEZZ) }, | ||
53 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_CX4) }, | ||
54 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_SFP) }, | ||
55 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_SUBDEV_ID_82599_SFP) }, | ||
56 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_SUBDEV_ID_82599_RNDC) }, | ||
57 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_SUBDEV_ID_82599_560FLR) }, | ||
58 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_SUBDEV_ID_82599_ECNA_DP) }, | ||
59 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_BACKPLANE_FCOE) }, | ||
60 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_SFP_FCOE) }, | ||
61 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_SFP_EM) }, | ||
62 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_SFP_SF2) }, | ||
63 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_SFP_SF_QP) }, | ||
64 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_QSFP_SF_QP) }, | ||
65 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599EN_SFP) }, | ||
66 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_XAUI_LOM) }, | ||
67 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_T3_LOM) }, | ||
68 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_LS) }, | ||
69 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X540T) }, | ||
70 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X540T1) }, | ||
71 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_X_SFP) }, | ||
72 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_X_10G_T) }, | ||
73 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_X_1G_T) }, | ||
74 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550T) }, | ||
75 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550T1) }, | ||
76 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_KR) }, | ||
77 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_KR_L) }, | ||
78 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_SFP_N) }, | ||
79 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_SGMII) }, | ||
80 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_SGMII_L) }, | ||
81 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_10G_T) }, | ||
82 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_QSFP) }, | ||
83 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_QSFP_N) }, | ||
84 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_SFP) }, | ||
85 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_1G_T) }, | ||
86 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_1G_T_L) }, | ||
87 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_X_KX4) }, | ||
88 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_X_KR) }, | ||
89 | +#ifdef RTE_NIC_BYPASS | ||
90 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_BYPASS) }, | ||
91 | +#endif | ||
92 | + { .vendor_id = 0, /* sentinel */ }, | ||
93 | }; | ||
94 | |||
95 | - | ||
96 | /* | ||
97 | * The set of PCI devices this driver supports (for 82599 VF) | ||
98 | */ | ||
99 | static const struct rte_pci_id pci_id_ixgbevf_map[] = { | ||
100 | - | ||
101 | -#define RTE_PCI_DEV_ID_DECL_IXGBEVF(vend, dev) {RTE_PCI_DEVICE(vend, dev)}, | ||
102 | -#include "rte_pci_dev_ids.h" | ||
103 | -{ .vendor_id = 0, /* sentinel */ }, | ||
104 | - | ||
105 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_VF) }, | ||
106 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_VF_HV) }, | ||
107 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X540_VF) }, | ||
108 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X540_VF_HV) }, | ||
109 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550_VF_HV) }, | ||
110 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550_VF) }, | ||
111 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_VF) }, | ||
112 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_VF_HV) }, | ||
113 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_X_VF) }, | ||
114 | + { RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_X_VF_HV) }, | ||
115 | + { .vendor_id = 0, /* sentinel */ }, | ||
116 | }; | ||
117 | |||
118 | static const struct rte_eth_desc_lim rx_desc_lim = { | ||
119 | diff --git a/lib/librte_eal/common/include/rte_pci_dev_ids.h b/lib/librte_eal/common/include/rte_pci_dev_ids.h | ||
120 | index 6ec8ae8..1f9d372 100644 | ||
121 | --- a/lib/librte_eal/common/include/rte_pci_dev_ids.h | ||
122 | +++ b/lib/librte_eal/common/include/rte_pci_dev_ids.h | ||
123 | @@ -65,14 +65,6 @@ | ||
124 | #define RTE_PCI_DEV_ID_DECL_IGBVF(vend, dev) | ||
125 | #endif | ||
126 | |||
127 | -#ifndef RTE_PCI_DEV_ID_DECL_IXGBE | ||
128 | -#define RTE_PCI_DEV_ID_DECL_IXGBE(vend, dev) | ||
129 | -#endif | ||
130 | - | ||
131 | -#ifndef RTE_PCI_DEV_ID_DECL_IXGBEVF | ||
132 | -#define RTE_PCI_DEV_ID_DECL_IXGBEVF(vend, dev) | ||
133 | -#endif | ||
134 | - | ||
135 | #ifndef PCI_VENDOR_ID_INTEL | ||
136 | /** Vendor ID used by Intel devices */ | ||
137 | #define PCI_VENDOR_ID_INTEL 0x8086 | ||
138 | @@ -159,128 +151,6 @@ RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_DH89XXCC_SERDES) | ||
139 | RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_DH89XXCC_BACKPLANE) | ||
140 | RTE_PCI_DEV_ID_DECL_IGB(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_DH89XXCC_SFP) | ||
141 | |||
142 | -/****************** Physical IXGBE devices from ixgbe_type.h ******************/ | ||
143 | - | ||
144 | -#define IXGBE_DEV_ID_82598 0x10B6 | ||
145 | -#define IXGBE_DEV_ID_82598_BX 0x1508 | ||
146 | -#define IXGBE_DEV_ID_82598AF_DUAL_PORT 0x10C6 | ||
147 | -#define IXGBE_DEV_ID_82598AF_SINGLE_PORT 0x10C7 | ||
148 | -#define IXGBE_DEV_ID_82598AT 0x10C8 | ||
149 | -#define IXGBE_DEV_ID_82598AT2 0x150B | ||
150 | -#define IXGBE_DEV_ID_82598EB_SFP_LOM 0x10DB | ||
151 | -#define IXGBE_DEV_ID_82598EB_CX4 0x10DD | ||
152 | -#define IXGBE_DEV_ID_82598_CX4_DUAL_PORT 0x10EC | ||
153 | -#define IXGBE_DEV_ID_82598_DA_DUAL_PORT 0x10F1 | ||
154 | -#define IXGBE_DEV_ID_82598_SR_DUAL_PORT_EM 0x10E1 | ||
155 | -#define IXGBE_DEV_ID_82598EB_XF_LR 0x10F4 | ||
156 | -#define IXGBE_DEV_ID_82599_KX4 0x10F7 | ||
157 | -#define IXGBE_DEV_ID_82599_KX4_MEZZ 0x1514 | ||
158 | -#define IXGBE_DEV_ID_82599_KR 0x1517 | ||
159 | -#define IXGBE_DEV_ID_82599_COMBO_BACKPLANE 0x10F8 | ||
160 | -#define IXGBE_SUBDEV_ID_82599_KX4_KR_MEZZ 0x000C | ||
161 | -#define IXGBE_DEV_ID_82599_CX4 0x10F9 | ||
162 | -#define IXGBE_DEV_ID_82599_SFP 0x10FB | ||
163 | -#define IXGBE_SUBDEV_ID_82599_SFP 0x11A9 | ||
164 | -#define IXGBE_SUBDEV_ID_82599_RNDC 0x1F72 | ||
165 | -#define IXGBE_SUBDEV_ID_82599_560FLR 0x17D0 | ||
166 | -#define IXGBE_SUBDEV_ID_82599_ECNA_DP 0x0470 | ||
167 | -#define IXGBE_DEV_ID_82599_BACKPLANE_FCOE 0x152A | ||
168 | -#define IXGBE_DEV_ID_82599_SFP_FCOE 0x1529 | ||
169 | -#define IXGBE_DEV_ID_82599_SFP_EM 0x1507 | ||
170 | -#define IXGBE_DEV_ID_82599_SFP_SF2 0x154D | ||
171 | -#define IXGBE_DEV_ID_82599_SFP_SF_QP 0x154A | ||
172 | -#define IXGBE_DEV_ID_82599_QSFP_SF_QP 0x1558 | ||
173 | -#define IXGBE_DEV_ID_82599EN_SFP 0x1557 | ||
174 | -#define IXGBE_DEV_ID_82599_XAUI_LOM 0x10FC | ||
175 | -#define IXGBE_DEV_ID_82599_T3_LOM 0x151C | ||
176 | -#define IXGBE_DEV_ID_82599_LS 0x154F | ||
177 | -#define IXGBE_DEV_ID_X540T 0x1528 | ||
178 | -#define IXGBE_DEV_ID_X540T1 0x1560 | ||
179 | -#define IXGBE_DEV_ID_X550EM_X_SFP 0x15AC | ||
180 | -#define IXGBE_DEV_ID_X550EM_X_10G_T 0x15AD | ||
181 | -#define IXGBE_DEV_ID_X550EM_X_1G_T 0x15AE | ||
182 | -#define IXGBE_DEV_ID_X550T 0x1563 | ||
183 | -#define IXGBE_DEV_ID_X550T1 0x15D1 | ||
184 | -#define IXGBE_DEV_ID_X550EM_A_KR 0x15C2 | ||
185 | -#define IXGBE_DEV_ID_X550EM_A_KR_L 0x15C3 | ||
186 | -#define IXGBE_DEV_ID_X550EM_A_SFP_N 0x15C4 | ||
187 | -#define IXGBE_DEV_ID_X550EM_A_SGMII 0x15C6 | ||
188 | -#define IXGBE_DEV_ID_X550EM_A_SGMII_L 0x15C7 | ||
189 | -#define IXGBE_DEV_ID_X550EM_A_10G_T 0x15C8 | ||
190 | -#define IXGBE_DEV_ID_X550EM_A_QSFP 0x15CA | ||
191 | -#define IXGBE_DEV_ID_X550EM_A_QSFP_N 0x15CC | ||
192 | -#define IXGBE_DEV_ID_X550EM_A_SFP 0x15CE | ||
193 | -#define IXGBE_DEV_ID_X550EM_A_1G_T 0x15E4 | ||
194 | -#define IXGBE_DEV_ID_X550EM_A_1G_T_L 0x15E5 | ||
195 | -#define IXGBE_DEV_ID_X550EM_X_KX4 0x15AA | ||
196 | -#define IXGBE_DEV_ID_X550EM_X_KR 0x15AB | ||
197 | - | ||
198 | -#ifdef RTE_NIC_BYPASS | ||
199 | -#define IXGBE_DEV_ID_82599_BYPASS 0x155D | ||
200 | -#endif | ||
201 | - | ||
202 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82598) | ||
203 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82598_BX) | ||
204 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82598AF_DUAL_PORT) | ||
205 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, \ | ||
206 | - IXGBE_DEV_ID_82598AF_SINGLE_PORT) | ||
207 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82598AT) | ||
208 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82598AT2) | ||
209 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82598EB_SFP_LOM) | ||
210 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82598EB_CX4) | ||
211 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82598_CX4_DUAL_PORT) | ||
212 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82598_DA_DUAL_PORT) | ||
213 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, \ | ||
214 | - IXGBE_DEV_ID_82598_SR_DUAL_PORT_EM) | ||
215 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82598EB_XF_LR) | ||
216 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_KX4) | ||
217 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_KX4_MEZZ) | ||
218 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_KR) | ||
219 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, \ | ||
220 | - IXGBE_DEV_ID_82599_COMBO_BACKPLANE) | ||
221 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, \ | ||
222 | - IXGBE_SUBDEV_ID_82599_KX4_KR_MEZZ) | ||
223 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_CX4) | ||
224 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_SFP) | ||
225 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_SUBDEV_ID_82599_SFP) | ||
226 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_SUBDEV_ID_82599_RNDC) | ||
227 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_SUBDEV_ID_82599_560FLR) | ||
228 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_SUBDEV_ID_82599_ECNA_DP) | ||
229 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_BACKPLANE_FCOE) | ||
230 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_SFP_FCOE) | ||
231 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_SFP_EM) | ||
232 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_SFP_SF2) | ||
233 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_SFP_SF_QP) | ||
234 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_QSFP_SF_QP) | ||
235 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599EN_SFP) | ||
236 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_XAUI_LOM) | ||
237 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_T3_LOM) | ||
238 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_LS) | ||
239 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X540T) | ||
240 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X540T1) | ||
241 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_X_SFP) | ||
242 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_X_10G_T) | ||
243 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_X_1G_T) | ||
244 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550T) | ||
245 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550T1) | ||
246 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_A_KR) | ||
247 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_A_KR_L) | ||
248 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_A_SFP_N) | ||
249 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_A_SGMII) | ||
250 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_A_SGMII_L) | ||
251 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_A_10G_T) | ||
252 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_A_QSFP) | ||
253 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_A_QSFP_N) | ||
254 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_A_SFP) | ||
255 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_A_1G_T) | ||
256 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_A_1G_T_L) | ||
257 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_X_KX4) | ||
258 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_X_KR) | ||
259 | - | ||
260 | -#ifdef RTE_NIC_BYPASS | ||
261 | -RTE_PCI_DEV_ID_DECL_IXGBE(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_BYPASS) | ||
262 | -#endif | ||
263 | - | ||
264 | /****************** Virtual IGB devices from e1000_hw.h ******************/ | ||
265 | |||
266 | #define E1000_DEV_ID_82576_VF 0x10CA | ||
267 | @@ -293,34 +163,8 @@ RTE_PCI_DEV_ID_DECL_IGBVF(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_82576_VF_HV) | ||
268 | RTE_PCI_DEV_ID_DECL_IGBVF(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I350_VF) | ||
269 | RTE_PCI_DEV_ID_DECL_IGBVF(PCI_VENDOR_ID_INTEL, E1000_DEV_ID_I350_VF_HV) | ||
270 | |||
271 | -/****************** Virtual IXGBE devices from ixgbe_type.h ******************/ | ||
272 | - | ||
273 | -#define IXGBE_DEV_ID_82599_VF 0x10ED | ||
274 | -#define IXGBE_DEV_ID_82599_VF_HV 0x152E | ||
275 | -#define IXGBE_DEV_ID_X540_VF 0x1515 | ||
276 | -#define IXGBE_DEV_ID_X540_VF_HV 0x1530 | ||
277 | -#define IXGBE_DEV_ID_X550_VF_HV 0x1564 | ||
278 | -#define IXGBE_DEV_ID_X550_VF 0x1565 | ||
279 | -#define IXGBE_DEV_ID_X550EM_A_VF 0x15C5 | ||
280 | -#define IXGBE_DEV_ID_X550EM_A_VF_HV 0x15B4 | ||
281 | -#define IXGBE_DEV_ID_X550EM_X_VF 0x15A8 | ||
282 | -#define IXGBE_DEV_ID_X550EM_X_VF_HV 0x15A9 | ||
283 | - | ||
284 | -RTE_PCI_DEV_ID_DECL_IXGBEVF(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_VF) | ||
285 | -RTE_PCI_DEV_ID_DECL_IXGBEVF(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_82599_VF_HV) | ||
286 | -RTE_PCI_DEV_ID_DECL_IXGBEVF(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X540_VF) | ||
287 | -RTE_PCI_DEV_ID_DECL_IXGBEVF(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X540_VF_HV) | ||
288 | -RTE_PCI_DEV_ID_DECL_IXGBEVF(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550_VF_HV) | ||
289 | -RTE_PCI_DEV_ID_DECL_IXGBEVF(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550_VF) | ||
290 | -RTE_PCI_DEV_ID_DECL_IXGBEVF(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_A_VF) | ||
291 | -RTE_PCI_DEV_ID_DECL_IXGBEVF(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_A_VF_HV) | ||
292 | -RTE_PCI_DEV_ID_DECL_IXGBEVF(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_X_VF) | ||
293 | -RTE_PCI_DEV_ID_DECL_IXGBEVF(PCI_VENDOR_ID_INTEL, IXGBE_DEV_ID_X550EM_X_VF_HV) | ||
294 | - | ||
295 | /* | ||
296 | * Undef all RTE_PCI_DEV_ID_DECL_* here. | ||
297 | */ | ||
298 | #undef RTE_PCI_DEV_ID_DECL_IGB | ||
299 | #undef RTE_PCI_DEV_ID_DECL_IGBVF | ||
300 | -#undef RTE_PCI_DEV_ID_DECL_IXGBE | ||
301 | -#undef RTE_PCI_DEV_ID_DECL_IXGBEVF | ||
302 | diff --git a/lib/librte_eal/linuxapp/kni/kni_misc.c b/lib/librte_eal/linuxapp/kni/kni_misc.c | ||
303 | index 59d15ca..66bf519 100644 | ||
304 | --- a/lib/librte_eal/linuxapp/kni/kni_misc.c | ||
305 | +++ b/lib/librte_eal/linuxapp/kni/kni_misc.c | ||
306 | @@ -55,6 +55,7 @@ extern void kni_set_ethtool_ops(struct net_device *netdev); | ||
307 | |||
308 | extern int ixgbe_kni_probe(struct pci_dev *pdev, struct net_device **lad_dev); | ||
309 | extern void ixgbe_kni_remove(struct pci_dev *pdev); | ||
310 | +extern struct pci_device_id ixgbe_pci_tbl[]; | ||
311 | extern int igb_kni_probe(struct pci_dev *pdev, struct net_device **lad_dev); | ||
312 | extern void igb_kni_remove(struct pci_dev *pdev); | ||
313 | |||
314 | @@ -353,15 +354,14 @@ kni_dev_remove(struct kni_dev *dev) | ||
315 | if (!dev) | ||
316 | return -ENODEV; | ||
317 | |||
318 | + if (pci_match_id(ixgbe_pci_tbl, dev->pci_dev)) | ||
319 | + ixgbe_kni_remove(dev->pci_dev); | ||
320 | + | ||
321 | switch (dev->device_id) { | ||
322 | #define RTE_PCI_DEV_ID_DECL_IGB(vend, dev) case (dev): | ||
323 | #include <rte_pci_dev_ids.h> | ||
324 | igb_kni_remove(dev->pci_dev); | ||
325 | break; | ||
326 | - #define RTE_PCI_DEV_ID_DECL_IXGBE(vend, dev) case (dev): | ||
327 | - #include <rte_pci_dev_ids.h> | ||
328 | - ixgbe_kni_remove(dev->pci_dev); | ||
329 | - break; | ||
330 | default: | ||
331 | break; | ||
332 | } | ||
333 | @@ -510,16 +510,15 @@ kni_ioctl_create(struct net *net, | ||
334 | (PCI_SLOT(pci->devfn) == dev_info.devid) && | ||
335 | (PCI_FUNC(pci->devfn) == dev_info.function)) { | ||
336 | found_pci = pci; | ||
337 | + | ||
338 | + if (pci_match_id(ixgbe_pci_tbl, found_pci)) | ||
339 | + ret = ixgbe_kni_probe(found_pci, &lad_dev); | ||
340 | + | ||
341 | switch (dev_info.device_id) { | ||
342 | #define RTE_PCI_DEV_ID_DECL_IGB(vend, dev) case (dev): | ||
343 | #include <rte_pci_dev_ids.h> | ||
344 | ret = igb_kni_probe(found_pci, &lad_dev); | ||
345 | break; | ||
346 | - #define RTE_PCI_DEV_ID_DECL_IXGBE(vend, dev) \ | ||
347 | - case (dev): | ||
348 | - #include <rte_pci_dev_ids.h> | ||
349 | - ret = ixgbe_kni_probe(found_pci, &lad_dev); | ||
350 | - break; | ||
351 | default: | ||
352 | ret = -1; | ||
353 | break; | ||
354 | -- | ||
355 | 1.9.1 | ||
356 | |||
diff --git a/common/recipes-extended/dpdk/dpdk_16.07.bb b/common/recipes-extended/dpdk/dpdk_16.07.bb new file mode 100644 index 00000000..55729cd9 --- /dev/null +++ b/common/recipes-extended/dpdk/dpdk_16.07.bb | |||
@@ -0,0 +1,16 @@ | |||
1 | include dpdk.inc | ||
2 | |||
3 | SRC_URI += "\ | ||
4 | file://dpdk-16.04-add-config-variable-to-enable-disable-dpdk_qat.patch \ | ||
5 | file://dpdk-16.04-dpdk-enable-ip_fragmentation-in-common_base-config.patch \ | ||
6 | " | ||
7 | |||
8 | SRC_URI[dpdk.md5sum] = "4afdc7951e21ff878a85ecade7f6f488" | ||
9 | SRC_URI[dpdk.sha256sum] = "cc982455a74357e465112bede5c29451b6eeb35f8c1c0dcea280dd3e7829f0e9" | ||
10 | |||
11 | export EXAMPLES_BUILD_DIR = "${RTE_TARGET}" | ||
12 | export ARCHDIR = "generic" | ||
13 | |||
14 | do_configure_prepend () { | ||
15 | sed -e "s#CONFIG_RTE_LIBRTE_POWER=y#CONFIG_RTE_LIBRTE_POWER=${CONFIG_EXAMPLE_VM_POWER_MANAGER}#" -i ${S}/config/common_linuxapp | ||
16 | } | ||