Linux kernels exhibit undesired behavior in PCIe configuration code. Netronome submitted a fix to the kernel maintainers for this issue which has been accepted into kernel version 4.5. Some recent Linux releases do also implement the patch already. This can be confirmed using the following command:
grep quirk /boot/System.map-`uname -r` | grep nfp ffffffff81362fc0 t quirk_nfp6000 ffffffff81958278 r __pci_fixup_quirk_nfp6000305 ffffffff81958290 r __pci_fixup_quirk_nfp6000304 ffffffff819582a8 r __pci_fixup_quirk_nfp6000303
If no output is produced, a patch needs to be applied to the kernel source code, or an already patched kernel needs to be installed. For your convenience, packages containing patched versions of the default kernels for various Ubuntu and RHEL/CentOS variants are available from Netronome:
- Ubuntu 14.04 (kernel 3.13.0-85)
- Ubuntu 14.04.2 (kernel 3.16.0-44)
- Ubuntu 14.04.3 (kernel 3.19.0-33)
- Ubuntu 15.10 (kernel 4.2.0-41)
- CentOS 7.1 (kernel 3.10.0-229.20.1.el7)
- CentOS 7.3 (kernel 3.10.0-493.el7)
To install, transfer the package files to a subdirectory on your system, unpack the tarball, change to the relevant subdirectory, and enter:
dpkg -i *.deb
on Ubuntu systems, or:
rpm -Uvh *.rpm
on RHEL/CentOS systems.
Contact Netronome support if you require additional assistance.
Software for kernel versions can be found at https://www.kernel.org/. In the event Software cannot be retrieved, contact Netronome for additional assistance.
This kernel patch code is free software; you can redistribute it and/or modify it under the terms of version 2 of the GNU General Public License as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details, a copy of this license has been provided in the accompanying README file.