Merge "i40e Driver Upgrade in support of N3000 on-board NICs"
This commit is contained in:
commit
d2a3c1e163
@ -10,8 +10,8 @@ perf
|
||||
# Network Drivers
|
||||
#
|
||||
|
||||
# i40evf-kmod
|
||||
kmod-i40evf
|
||||
# iavf-kmod
|
||||
kmod-iavf
|
||||
|
||||
# i40e-kmod
|
||||
kmod-i40e
|
||||
|
@ -7,8 +7,8 @@
|
||||
# Network Drivers
|
||||
#
|
||||
|
||||
# i40evf-kmod
|
||||
kmod-i40evf-rt
|
||||
# iavf-kmod
|
||||
kmod-iavf-rt
|
||||
|
||||
# i40e-kmod
|
||||
kmod-i40e-rt
|
||||
|
@ -80,9 +80,9 @@ kmod-e1000e-rt
|
||||
kmod-i40e
|
||||
kmod-i40e-rt
|
||||
|
||||
# i40evf-kmod
|
||||
kmod-i40evf
|
||||
kmod-i40evf-rt
|
||||
# iavf-kmod
|
||||
kmod-iavf
|
||||
kmod-iavf-rt
|
||||
|
||||
# ixgbevf-kmod
|
||||
kmod-ixgbevf
|
||||
|
@ -65,7 +65,7 @@ kubernetes/etcd
|
||||
kubernetes/helm
|
||||
grub/grubby
|
||||
kernel/kernel-modules/intel-e1000e
|
||||
kernel/kernel-modules/intel-i40evf
|
||||
kernel/kernel-modules/intel-iavf
|
||||
kernel/kernel-modules/intel-i40e
|
||||
kernel/kernel-modules/intel-ixgbevf
|
||||
kernel/kernel-modules/intel-ixgbe
|
||||
|
@ -3,7 +3,7 @@ networking/mellanox/libibverbs
|
||||
kernel/kernel-modules/mlnx-ofa_kernel
|
||||
networking/mellanox/rdma-core
|
||||
kernel/kernel-modules/intel-e1000e
|
||||
kernel/kernel-modules/intel-i40evf
|
||||
kernel/kernel-modules/intel-iavf
|
||||
kernel/kernel-modules/intel-i40e
|
||||
kernel/kernel-modules/intel-ixgbevf
|
||||
kernel/kernel-modules/intel-ixgbe
|
||||
|
@ -1,4 +1,4 @@
|
||||
COPY_LIST=" \
|
||||
$PKG_BASE/files/* \
|
||||
$STX_BASE/downloads/i40e-2.7.29.tar.gz"
|
||||
$STX_BASE/downloads/i40e-2.10.19.30.tar.gz"
|
||||
TIS_PATCH_VER=1
|
||||
|
@ -8,7 +8,7 @@
|
||||
%define kmod_name i40e
|
||||
|
||||
Name: %{kmod_name}-kmod%{?bt_ext}
|
||||
Version: 2.7.29
|
||||
Version: 2.10.19.30
|
||||
Release: 0%{?_tis_dist}.%{tis_patch_ver}
|
||||
Group: System Environment/Kernel
|
||||
License: GPLv2
|
||||
@ -25,7 +25,6 @@ Source11: modules-load.conf
|
||||
|
||||
Patch01: i40e-Enable-getting-link-status-from-VF.patch
|
||||
Patch02: i40e-add-more-debug-info-for-VFs-still-in-reset.patch
|
||||
Patch03: ndo_get_vf_config-poll-for-out-of-vf-reset.patch
|
||||
|
||||
%define kversion %(rpm -q kernel%{?bt_ext}-devel | sort --version-sort | tail -1 | sed 's/kernel%{?bt_ext}-devel-//')
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
From 412fdc8c0d51500e42e76e788ece3ca7dd260ced Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <412fdc8c0d51500e42e76e788ece3ca7dd260ced.1528830095.git.Jim.Somerville@windriver.com>
|
||||
From b8c666367cd98a2b0033c043f6f206abd8e238a6 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <b8c666367cd98a2b0033c043f6f206abd8e238a6.1572295393.git.Jim.Somerville@windriver.com>
|
||||
From: Vadim Suraev <vsuraev@northforgeinc.com>
|
||||
Date: Mon, 8 Feb 2016 15:57:30 -0500
|
||||
Subject: [PATCH 1/3] i40e: Enable getting link status from VF
|
||||
Subject: [PATCH 1/2] i40e: Enable getting link status from VF
|
||||
|
||||
Add handling of custom OP code sent from the PMD VF to get link status via the
|
||||
virtual channel interface.
|
||||
@ -16,10 +16,10 @@ Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
|
||||
2 files changed, 79 insertions(+)
|
||||
|
||||
diff --git a/src/i40e_virtchnl_pf.c b/src/i40e_virtchnl_pf.c
|
||||
index 020bacb..126ec19 100644
|
||||
index 9e48f0d..21b4606 100644
|
||||
--- a/src/i40e_virtchnl_pf.c
|
||||
+++ b/src/i40e_virtchnl_pf.c
|
||||
@@ -2559,6 +2559,81 @@ static int i40e_vc_config_promiscuous_mode_msg(struct i40e_vf *vf, u8 *msg)
|
||||
@@ -2467,6 +2467,81 @@ err_out:
|
||||
aq_ret);
|
||||
}
|
||||
|
||||
@ -101,7 +101,7 @@ index 020bacb..126ec19 100644
|
||||
/**
|
||||
* i40e_vc_config_queues_msg
|
||||
* @vf: pointer to the VF info
|
||||
@@ -4300,6 +4375,9 @@ int i40e_vc_process_vf_msg(struct i40e_pf *pf, s16 vf_id, u32 v_opcode,
|
||||
@@ -4166,6 +4241,9 @@ int i40e_vc_process_vf_msg(struct i40e_pf *pf, s16 vf_id, u32 v_opcode,
|
||||
case VIRTCHNL_OP_REQUEST_QUEUES:
|
||||
ret = i40e_vc_request_queues_msg(vf, msg);
|
||||
break;
|
||||
@ -112,17 +112,17 @@ index 020bacb..126ec19 100644
|
||||
case VIRTCHNL_OP_ENABLE_CHANNELS:
|
||||
ret = i40e_vc_add_qch_msg(vf, msg);
|
||||
diff --git a/src/virtchnl.h b/src/virtchnl.h
|
||||
index afde603..b9b38c0 100644
|
||||
index a22cc43..d3d9324 100644
|
||||
--- a/src/virtchnl.h
|
||||
+++ b/src/virtchnl.h
|
||||
@@ -124,6 +124,7 @@ enum virtchnl_ops {
|
||||
@@ -128,6 +128,7 @@ enum virtchnl_ops {
|
||||
VIRTCHNL_OP_DISABLE_CHANNELS = 31,
|
||||
VIRTCHNL_OP_ADD_CLOUD_FILTER = 32,
|
||||
VIRTCHNL_OP_DEL_CLOUD_FILTER = 33,
|
||||
+ VIRTCHNL_OP_GET_LINK_STAT = 0x101,
|
||||
|
||||
};
|
||||
|
||||
/* These macros are used to generate compilation errors if a structure/union
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
From d60e87567eb5418fbb848bf30f72d3d8bec3bad6 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <d60e87567eb5418fbb848bf30f72d3d8bec3bad6.1528830095.git.Jim.Somerville@windriver.com>
|
||||
In-Reply-To: <412fdc8c0d51500e42e76e788ece3ca7dd260ced.1528830095.git.Jim.Somerville@windriver.com>
|
||||
References: <412fdc8c0d51500e42e76e788ece3ca7dd260ced.1528830095.git.Jim.Somerville@windriver.com>
|
||||
From 40b257ecf5d36abf14a4ef98fc2e44dba7100fea Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <40b257ecf5d36abf14a4ef98fc2e44dba7100fea.1572295393.git.Jim.Somerville@windriver.com>
|
||||
In-Reply-To: <b8c666367cd98a2b0033c043f6f206abd8e238a6.1572295393.git.Jim.Somerville@windriver.com>
|
||||
References: <b8c666367cd98a2b0033c043f6f206abd8e238a6.1572295393.git.Jim.Somerville@windriver.com>
|
||||
From: Jim Somerville <Jim.Somerville@windriver.com>
|
||||
Date: Mon, 26 Mar 2018 11:03:47 -0400
|
||||
Subject: [PATCH 2/3] i40e add more debug info for VFs still in reset
|
||||
Subject: [PATCH 2/2] i40e add more debug info for VFs still in reset
|
||||
|
||||
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
|
||||
---
|
||||
@ -12,10 +12,21 @@ Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
|
||||
1 file changed, 8 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/src/i40e_virtchnl_pf.c b/src/i40e_virtchnl_pf.c
|
||||
index 126ec19..da29fc3 100644
|
||||
index 21b4606..dfb9568 100644
|
||||
--- a/src/i40e_virtchnl_pf.c
|
||||
+++ b/src/i40e_virtchnl_pf.c
|
||||
@@ -4650,8 +4650,8 @@ int i40e_ndo_set_vf_port_vlan(struct net_device *netdev,
|
||||
@@ -4363,8 +4363,8 @@ static int i40e_set_vf_mac(struct i40e_vf *vf, struct i40e_vsi *vsi,
|
||||
msleep(20);
|
||||
}
|
||||
if (!test_bit(I40E_VF_STATE_INIT, &vf->vf_states)) {
|
||||
- dev_err(&pf->pdev->dev, "VF %d still in reset. Try again.\n",
|
||||
- vf->vf_id);
|
||||
+ dev_err(&pf->pdev->dev, "%s: VF %d still in reset. Try again.\n",
|
||||
+ __func__, vf->vf_id);
|
||||
ret = -EAGAIN;
|
||||
goto error_param;
|
||||
}
|
||||
@@ -4522,8 +4522,8 @@ int i40e_ndo_set_vf_port_vlan(struct net_device *netdev,
|
||||
vf = &pf->vf[vf_id];
|
||||
vsi = pf->vsi[vf->lan_vsi_idx];
|
||||
if (!test_bit(I40E_VF_STATE_INIT, &vf->vf_states)) {
|
||||
@ -26,7 +37,7 @@ index 126ec19..da29fc3 100644
|
||||
ret = -EAGAIN;
|
||||
goto error_pvid;
|
||||
}
|
||||
@@ -4784,8 +4784,8 @@ int i40e_ndo_set_vf_bw(struct net_device *netdev, int vf_id, int max_tx_rate)
|
||||
@@ -4678,8 +4678,8 @@ int i40e_ndo_set_vf_bw(struct net_device *netdev, int vf_id, int max_tx_rate)
|
||||
vf = &pf->vf[vf_id];
|
||||
vsi = pf->vsi[vf->lan_vsi_idx];
|
||||
if (!test_bit(I40E_VF_STATE_INIT, &vf->vf_states)) {
|
||||
@ -37,18 +48,7 @@ index 126ec19..da29fc3 100644
|
||||
ret = -EAGAIN;
|
||||
goto error;
|
||||
}
|
||||
@@ -4844,8 +4844,8 @@ int i40e_ndo_get_vf_config(struct net_device *netdev,
|
||||
/* first vsi is always the LAN vsi */
|
||||
vsi = pf->vsi[vf->lan_vsi_idx];
|
||||
if (!test_bit(I40E_VF_STATE_INIT, &vf->vf_states)) {
|
||||
- dev_err(&pf->pdev->dev, "VF %d still in reset. Try again.\n",
|
||||
- vf_id);
|
||||
+ dev_err(&pf->pdev->dev, "%s: VF %d still in reset. Try again.\n",
|
||||
+ __func__, vf_id);
|
||||
ret = -EAGAIN;
|
||||
goto error_param;
|
||||
}
|
||||
@@ -4989,8 +4989,8 @@ int i40e_ndo_set_vf_spoofchk(struct net_device *netdev, int vf_id, bool enable)
|
||||
@@ -4881,8 +4881,8 @@ int i40e_ndo_set_vf_spoofchk(struct net_device *netdev, int vf_id, bool enable)
|
||||
|
||||
vf = &(pf->vf[vf_id]);
|
||||
if (!test_bit(I40E_VF_STATE_INIT, &vf->vf_states)) {
|
||||
|
@ -1,49 +0,0 @@
|
||||
From 25b521f58b33bf070c0b31d077333c13c3ad25e8 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <25b521f58b33bf070c0b31d077333c13c3ad25e8.1528830095.git.Jim.Somerville@windriver.com>
|
||||
In-Reply-To: <412fdc8c0d51500e42e76e788ece3ca7dd260ced.1528830095.git.Jim.Somerville@windriver.com>
|
||||
References: <412fdc8c0d51500e42e76e788ece3ca7dd260ced.1528830095.git.Jim.Somerville@windriver.com>
|
||||
From: Jim Somerville <Jim.Somerville@windriver.com>
|
||||
Date: Mon, 2 Apr 2018 15:35:12 -0400
|
||||
Subject: [PATCH 3/3] ndo_get_vf_config poll for out of vf reset
|
||||
|
||||
Same solution as 028daf80117376b22909becd9720daaefdfceff4 from the
|
||||
net-next tree as supplied by Intel, but we apply it to
|
||||
ndo_get_vf_config instead.
|
||||
|
||||
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
|
||||
---
|
||||
src/i40e_virtchnl_pf.c | 11 +++++++++++
|
||||
1 file changed, 11 insertions(+)
|
||||
|
||||
diff --git a/src/i40e_virtchnl_pf.c b/src/i40e_virtchnl_pf.c
|
||||
index da29fc3..d5935d6 100644
|
||||
--- a/src/i40e_virtchnl_pf.c
|
||||
+++ b/src/i40e_virtchnl_pf.c
|
||||
@@ -4829,6 +4829,7 @@ int i40e_ndo_get_vf_config(struct net_device *netdev,
|
||||
struct i40e_pf *pf = vsi->back;
|
||||
struct i40e_vf *vf;
|
||||
int ret = 0;
|
||||
+ u8 i;
|
||||
|
||||
if (test_and_set_bit(__I40E_VIRTCHNL_OP_PENDING, pf->state)) {
|
||||
dev_warn(&pf->pdev->dev, "Unable to configure VFs, other operation is pending.\n");
|
||||
@@ -4843,6 +4844,16 @@ int i40e_ndo_get_vf_config(struct net_device *netdev,
|
||||
vf = &pf->vf[vf_id];
|
||||
/* first vsi is always the LAN vsi */
|
||||
vsi = pf->vsi[vf->lan_vsi_idx];
|
||||
+
|
||||
+ /* When the VF is resetting wait until it is done.
|
||||
+ * It can take up to 200 milliseconds,
|
||||
+ * but wait for up to 300 milliseconds to be safe.
|
||||
+ */
|
||||
+ for (i = 0; i < 15; i++) {
|
||||
+ if (test_bit(I40E_VF_STATE_INIT, &vf->vf_states))
|
||||
+ break;
|
||||
+ msleep(20);
|
||||
+ }
|
||||
if (!test_bit(I40E_VF_STATE_INIT, &vf->vf_states)) {
|
||||
dev_err(&pf->pdev->dev, "%s: VF %d still in reset. Try again.\n",
|
||||
__func__, vf_id);
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -1 +0,0 @@
|
||||
i40evf
|
@ -1,4 +1,4 @@
|
||||
COPY_LIST=" \
|
||||
$PKG_BASE/files/* \
|
||||
$STX_BASE/downloads/i40evf-3.6.15.tar.gz"
|
||||
$STX_BASE/downloads/iavf-3.7.61.20.tar.gz"
|
||||
TIS_PATCH_VER=1
|
@ -5,10 +5,10 @@
|
||||
%endif
|
||||
|
||||
# Define the kmod package name here.
|
||||
%define kmod_name i40evf
|
||||
%define kmod_name iavf
|
||||
|
||||
Name: %{kmod_name}-kmod%{?bt_ext}
|
||||
Version: 3.6.15
|
||||
Version: 3.7.61.20
|
||||
Release: 0%{?_tis_dist}.%{tis_patch_ver}
|
||||
Group: System Environment/Kernel
|
||||
License: GPLv2
|
||||
@ -25,52 +25,52 @@ Source11: modules-load.conf
|
||||
|
||||
%define kversion %(rpm -q kernel%{?bt_ext}-devel | sort --version-sort | tail -1 | sed 's/kernel%{?bt_ext}-devel-//')
|
||||
|
||||
%package -n kmod-i40evf%{?bt_ext}
|
||||
Summary: i40evf kernel module(s)
|
||||
%package -n kmod-iavf%{?bt_ext}
|
||||
Summary: iavf kernel module(s)
|
||||
Group: System Environment/Kernel
|
||||
%global _use_internal_dependency_generator 0
|
||||
Provides: kernel-modules >= %{kversion}
|
||||
Provides: i40evf-kmod = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Provides: iavf-kmod = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Requires(post): /usr/sbin/depmod
|
||||
Requires(postun): /usr/sbin/depmod
|
||||
|
||||
%description -n kmod-i40evf%{?bt_ext}
|
||||
This package provides the i40evf kernel module(s) built
|
||||
%description -n kmod-iavf%{?bt_ext}
|
||||
This package provides the iavf kernel module(s) built
|
||||
for the Linux kernel using the %{_target_cpu} family of processors.
|
||||
|
||||
%post -n kmod-i40evf%{?bt_ext}
|
||||
%post -n kmod-iavf%{?bt_ext}
|
||||
echo "Working. This may take some time ..."
|
||||
if [ -e "/boot/System.map-%{kversion}" ]; then
|
||||
/usr/sbin/depmod -aeF "/boot/System.map-%{kversion}" "%{kversion}" > /dev/null || :
|
||||
fi
|
||||
modules=( $(find /lib/modules/%{kversion}/extra/i40evf | grep '\.ko$') )
|
||||
modules=( $(find /lib/modules/%{kversion}/extra/iavf | grep '\.ko$') )
|
||||
if [ -x "/sbin/weak-modules" ]; then
|
||||
printf '%s\n' "${modules[@]}" | /sbin/weak-modules --add-modules
|
||||
fi
|
||||
echo "Done."
|
||||
|
||||
%preun -n kmod-i40evf%{?bt_ext}
|
||||
rpm -ql kmod-i40evf%{?bt_ext}-%{version}-%{release}.x86_64 | grep '\.ko$' > /var/run/rpm-kmod-i40evf%{?bt_ext}-modules
|
||||
%preun -n kmod-iavf%{?bt_ext}
|
||||
rpm -ql kmod-iavf%{?bt_ext}-%{version}-%{release}.x86_64 | grep '\.ko$' > /var/run/rpm-kmod-iavf%{?bt_ext}-modules
|
||||
|
||||
%postun -n kmod-i40evf%{?bt_ext}
|
||||
%postun -n kmod-iavf%{?bt_ext}
|
||||
echo "Working. This may take some time ..."
|
||||
if [ -e "/boot/System.map-%{kversion}" ]; then
|
||||
/usr/sbin/depmod -aeF "/boot/System.map-%{kversion}" "%{kversion}" > /dev/null || :
|
||||
fi
|
||||
modules=( $(cat /var/run/rpm-kmod-i40evf%{?bt_ext}-modules) )
|
||||
rm /var/run/rpm-kmod-i40evf%{?bt_ext}-modules
|
||||
modules=( $(cat /var/run/rpm-kmod-iavf%{?bt_ext}-modules) )
|
||||
rm /var/run/rpm-kmod-iavf%{?bt_ext}-modules
|
||||
if [ -x "/sbin/weak-modules" ]; then
|
||||
printf '%s\n' "${modules[@]}" | /sbin/weak-modules --remove-modules
|
||||
fi
|
||||
echo "Done."
|
||||
|
||||
%files -n kmod-i40evf%{?bt_ext}
|
||||
%files -n kmod-iavf%{?bt_ext}
|
||||
%defattr(644,root,root,755)
|
||||
/lib/modules/%{kversion}/
|
||||
%config(noreplace)/etc/depmod.d/kmod-i40evf.conf
|
||||
%doc /usr/share/doc/kmod-i40evf-%{version}/
|
||||
%config(noreplace)/etc/depmod.d/kmod-iavf.conf
|
||||
%doc /usr/share/doc/kmod-iavf-%{version}/
|
||||
%doc /usr/share/man/man7/
|
||||
%{_sysconfdir}/modules-load.d/i40evf.conf
|
||||
%{_sysconfdir}/modules-load.d/iavf.conf
|
||||
|
||||
# Disable the building of the debug package(s).
|
||||
%define debug_package %{nil}
|
||||
@ -102,7 +102,7 @@ popd >/dev/null
|
||||
%{__install} -d %{buildroot}%{_mandir}/man7/
|
||||
%{__install} %{kmod_name}.7.gz %{buildroot}%{_mandir}/man7/
|
||||
%{__install} -d %{buildroot}%{_sysconfdir}/modules-load.d
|
||||
%{__install} -m 644 %{SOURCE11} %{buildroot}%{_sysconfdir}/modules-load.d/i40evf.conf
|
||||
%{__install} -m 644 %{SOURCE11} %{buildroot}%{_sysconfdir}/modules-load.d/iavf.conf
|
||||
|
||||
# Strip the modules(s).
|
||||
find %{buildroot} -type f -name \*.ko -exec %{__strip} --strip-debug \{\} \;
|
1
kernel/kernel-modules/intel-iavf/files/modules-load.conf
Normal file
1
kernel/kernel-modules/intel-iavf/files/modules-load.conf
Normal file
@ -0,0 +1 @@
|
||||
iavf
|
Loading…
x
Reference in New Issue
Block a user