
This upgrades the intel driver versions to the ones listed in Intel driver bundle 27.1. The list can be found here: https://downloadmirror.intel.com/727294/Release_Notes_27.1.pdf Also upgrades the ddp firmware to ice_comms-1.3.35.0 from ice_comm-1.3.31.0. 0001-ice_xsk-Avoid-dependency-on-napi_busy_loop-with-PREE.patch has been dropped because the fix had been integrated to the driver ice-1.8.3. The new versions are: ice-1.8.3 i40e-2.18.9 iavf-4.2.2 Reason: Update ICE driver to support the Intel Logan Beach NIC (E810-CQDA2T), and that dictates the upgrade of the iavf driver which in turn dictates the upgrade of the i40e driver. We select the versions listed in official Intel driver bundle 27.1 to keep the driver versions compatible with each other. The ice_comm ddp firmware upgrade to version 1.3.35.0 is also dictated by the bundle. Verification: - installs from iso succeed on servers with ice(Intel Ethernet Controller E810) and i40e hw(Intel Ethernet Controller X710) - interfaces are up and pass packets - create vfs, ensure that they are picked up by the new iavf driver and that the interface can come up and pass packets - Check dmesg to see DDP package is loaded successfully and the version is 1.3.35.0. Note that we do not test it on Intel Logan Beach NIC, because the network adapter is not available in our lab yet. We will test it once Intel Logan Beach NIC is ready. Story: 2009952 Task: 44895 Depends-On: https://review.opendev.org/c/starlingx/tools/+/836728 Signed-off-by: Jiping Ma <jiping.ma2@windriver.com> Change-Id: I93dcf00fe443c4f86db2f8a65e159f9da05acc29
140 lines
4.7 KiB
RPMSpec
140 lines
4.7 KiB
RPMSpec
%if "%{?_tis_build_type}" == "rt"
|
|
%define bt_ext -rt
|
|
%else
|
|
%undefine bt_ext
|
|
%endif
|
|
|
|
%define kmod_name ice
|
|
|
|
Name: %{kmod_name}-kmod%{?bt_ext}
|
|
Version: 1.8.3
|
|
Release: 1%{?_tis_dist}.%{tis_patch_ver}
|
|
Group: System Environment/Kernel
|
|
License: GPL-2.0
|
|
Summary: Intel(R) Ethernet Connection E800 Series Linux Driver
|
|
URL: http://support.intel.com
|
|
|
|
|
|
BuildRequires: kernel%{?bt_ext}-devel, redhat-rpm-config, openssl, elfutils-libelf-devel
|
|
Requires: kernel%{?bt_ext}-devel, findutils, gawk, bash
|
|
%if 0%{?rhel} == 7
|
|
BuildRequires: devtoolset-8-build
|
|
BuildRequires: devtoolset-8-binutils
|
|
BuildRequires: devtoolset-8-gcc
|
|
BuildRequires: devtoolset-8-make
|
|
%endif
|
|
|
|
%define kernel_module_package_buildreqs kernel%{?bt_ext}-devel
|
|
|
|
Source0: %{kmod_name}-%{version}.tar.gz
|
|
Source1: ice_comms-1.3.35.0.zip
|
|
Source11: modules-load.conf
|
|
|
|
|
|
Patch1: 0001-ice_main-ice_lib-Use-irq_update_affinity_hint.patch
|
|
|
|
%define kversion %(rpm -q kernel%{?bt_ext}-devel | sort --version-sort | tail -1 | sed 's/kernel%{?bt_ext}-devel-//')
|
|
%define find() %(for f in %*; do if [ -e $f ]; then echo $f; break; fi; done)
|
|
|
|
%package -n kmod-ice%{?bt_ext}
|
|
Summary: Intel(R) Ethernet Connection E800 Series Linux Driver
|
|
Group: System Environment/Kernel
|
|
%global _use_internal_dependency_generator 0
|
|
Provides: kernel-modules >= %{kversion}
|
|
Provides: ice-kmod = %{?epoch:%{epoch}:}%{version}-%{release}
|
|
Requires(post): /usr/sbin/depmod
|
|
Requires(postun): /usr/sbin/depmod
|
|
|
|
%define debug_package %{nil}
|
|
%description -n kmod-ice%{?bt_ext}
|
|
This package provides the Intel(R) Ethernet Connection E800 Series Linux Driver,
|
|
ice, built for the Linux kernel using the %{_target_cpu} family of processors.
|
|
|
|
%prep
|
|
%autosetup -p 1 -n %{kmod_name}-%{version}
|
|
unzip %{SOURCE1} -d ice_comms
|
|
|
|
%build
|
|
%if 0%{?rhel} == 7
|
|
source scl_source enable devtoolset-8 || :
|
|
%endif
|
|
pushd src >/dev/null
|
|
%{__make} KSRC=%{_usrsrc}/kernels/%{kversion}
|
|
popd >/dev/null
|
|
|
|
%install
|
|
%if 0%{?rhel} == 7
|
|
source scl_source enable devtoolset-8 || :
|
|
%endif
|
|
%{__install} -d %{buildroot}/lib/modules/%{kversion}/extra/%{kmod_name}/
|
|
%{__install} src/%{kmod_name}.ko %{buildroot}/lib/modules/%{kversion}/extra/%{kmod_name}/
|
|
%{__install} -d %{buildroot}%{_defaultdocdir}/kmod-%{kmod_name}-%{version}/
|
|
%{__install} COPYING %{buildroot}%{_defaultdocdir}/kmod-%{kmod_name}-%{version}/
|
|
%{__install} pci.updates %{buildroot}%{_defaultdocdir}/kmod-%{kmod_name}-%{version}/
|
|
%{__install} README %{buildroot}%{_defaultdocdir}/kmod-%{kmod_name}-%{version}/
|
|
%{__install} -d %{buildroot}%{_mandir}/man7/
|
|
%{__install} %{kmod_name}.7 %{buildroot}%{_mandir}/man7/
|
|
%{__install} -d %{buildroot}%{_sysconfdir}/modules-load.d
|
|
%{__install} -m 644 %{SOURCE11} %{buildroot}%{_sysconfdir}/modules-load.d/ice.conf
|
|
|
|
%{__install} -d %{buildroot}/lib/firmware/updates/intel/ice/ddp/
|
|
%{__install} -m 644 ice_comms/*.txt %{buildroot}/lib/firmware/updates/intel/ice/ddp/
|
|
%{__install} -m 644 ice_comms/ice_comms*.pkg %{buildroot}/lib/firmware/updates/intel/ice/ddp/
|
|
mkdir -p %{buildroot}//lib/firmware/intel/ice/ddp/
|
|
ln -frs %{buildroot}/lib/firmware/updates/intel/ice/ddp/ice_comms*.pkg %{buildroot}//lib/firmware/intel/ice/ddp/ice.pkg
|
|
|
|
# Strip the modules(s).
|
|
find %{buildroot} -type f -name \*.ko -exec %{__strip} --strip-debug \{\} \;
|
|
|
|
# Always Sign the modules(s).
|
|
# If the module signing keys are not defined, define them here.
|
|
%{!?privkey: %define privkey /usr/src/kernels/%{kversion}/signing_key.pem}
|
|
%{!?pubkey: %define pubkey /usr/src/kernels/%{kversion}/signing_key.x509}
|
|
for module in $(find %{buildroot} -type f -name \*.ko);
|
|
do /usr/src/kernels/%{kversion}/scripts/sign-file \
|
|
sha256 %{privkey} %{pubkey} $module;
|
|
done
|
|
|
|
%clean
|
|
rm -rf %{buildroot}
|
|
|
|
%files -n kmod-ice%{?bt_ext}
|
|
%defattr(644,root,root,755)
|
|
/lib/modules/%{kversion}/
|
|
/lib/firmware/updates/intel/ice/ddp/*
|
|
/lib/firmware/intel/ice/ddp/ice.pkg
|
|
%{_sysconfdir}/modules-load.d/ice.conf
|
|
%doc /usr/share/doc/kmod-ice-%{version}/
|
|
%doc /usr/share/man/man7/
|
|
|
|
# Disable the building of the debug package(s).
|
|
%define debug_package %{nil}
|
|
|
|
%post -n kmod-ice%{?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
|
|
echo "Done."
|
|
|
|
%preun -n kmod-ice%{?bt_ext}
|
|
rm -rf /usr/local/share/%{name}
|
|
|
|
%postun -n kmod-ice%{?bt_ext}
|
|
uname -r | grep BOOT || /sbin/depmod -a > /dev/null 2>&1 || true
|
|
|
|
echo "Updating initramfs with dracut..."
|
|
if dracut --force ; then
|
|
echo "Successfully updated initramfs."
|
|
else
|
|
echo "Failed to update initramfs."
|
|
echo "You must update your initramfs image for changes to take place."
|
|
exit -1
|
|
fi
|
|
|
|
%description
|
|
This package provides the ice kernel module(s) built
|
|
for the Linux kernel using the %{_target_cpu} family of processors.
|
|
This package contains the Intel(R) Ethernet Connection E800 Series Linux Driver.
|