
This commit introduces the bnxt_en and bnxt_re out-of-tree drivers for Broadcom's NetXtreme network adapters, disables the in-tree versions and handles the fall-out by forcibly enabling the kernel's CONFIG_PAGE_POOL configuration option. In comparison to commit ec7d0d47680c ("Prepare for Broadcom drivers") and commit 0ae9f6bd537b ("Add Broadcom NetXtreme-E drivers") that introduce the same drivers to CentOS-based StarlingX, the following changes were made: - The amount of changes in bnxt_re's makefiles was reduced by taking advantage of the fact that /lib/modules/<kver>/{build,source} symbolic links point to the header and kbuild directories. - The bnxt_en driver's makefile was modified to enable parallelized builds. - The shell commands to add the 'MODULE_INFO(retpoline, "Y")' pre-processor directive to the bnxt_en and bnxt_re modules were removed, as we discovered that this causes the module to have 'retpoline: Y' in its metadata twice, as shown by the following shell interaction output on a Debian-based StarlingX installation: $ modinfo bnxt_en | grep retpoline: retpoline: Y retpoline: Y The changes inherited from CentOS-based StarlingX but which are not mentioned in the comparison section above are as follows: - With patch "0002-bnxt_en-bnxt_compat.h-Fix-up-a-build-failure.patch", we fix a build failure caused by the definition of a macro intended as a placeholder for an in-tree API function. The v5.10 kernel already defines this function, so the macro is removed. - With patch "0003-bnxt_en-bnxt_re-Use-irq_update_affinity_hint.patch", we modify the bnxt_en and bnxt_re drivers so that the affinities of the IRQs serviced by these drivers are set up according to StarlingX's requirements, which is to make use of the CPU list specified by the irqaffinity= kernel command line argument. As was the case with CentOS-based StarlingX, the changes in bnxt_re take effect, but the changes in bnxt_en are included for completeness, as the latter code is compiled out with kernel versions >= 4.15. (Please see the patch description for further details on this.) - The CONFIG_PAGE_POOL option is forcibly enabled, as removing bnxt_en from the in-tree kernel build removes the last user of CONFIG_PAGE_POOL, which is a dependency for the Mellanox OFED and bnxt_en drivers. This causes the kernel build system to automatically disable this option. Hence, this commit makes the CONFIG_PAGE_POOL option default to being enabled. Finally, the version of the Debian package was made "1.10.2.220.0.13.0" instead of the upstream "1.10.2-220.0.13.0", because Debian's versioning policy only allows hyphen/dash ('-') characters in package versions when there is no Debian revision appended to the version. Given that StarlingX appends -1 as the Debian revision, we chose to use '.' instead of '-' in the package version. (Another approach would have been to relocate the '220.0.13.0' to the revision field.) Verification notes: - A Debian-based StarlingX ISO image is successfully built with the standard kernel, and the ISO image was installed onto a physical server with a quadport Broadcom network adapter, but with some workarounds. The bnxt_en and bnxt_re modules were observed to be automatically loaded on this server, as expected. - One of the interfaces of the Broadcom network adapter in the aforementioned server was the management (OAM) interface, which was observed to work without obvious/apparent issues. - The preempt-rt kernel was not tested, because an ISO image with the preempt-rt image could not be built due to reasons unrelated to this commit. That is, despite rebasing and running the following commands, the resulting ISO image did not start the installation process in a virtual machine, where a kickstart parse error was encountered: downloader -B rt,std -s -b && \ build-pkgs -c -a -b rt,std && \ build-image -t rt Story: 2009915 Task: 45138 Change-Id: I012c8acaf18a2a2f18679ee2ddda67bf1e55d2c0 Signed-off-by: M. Vefa Bicakci <vefa.bicakci@windriver.com>
10 lines
222 B
Plaintext
10 lines
222 B
Plaintext
kernel-rt
|
|
kernel-modules/bnxt_en
|
|
kernel-modules/intel-i40e
|
|
kernel-modules/intel-iavf
|
|
kernel-modules/intel-ice
|
|
kernel-modules/intel-igb_uio
|
|
kernel-modules/intel-opae-fpga
|
|
kernel-modules/mlnx-ofa_kernel
|
|
kernel-modules/qat17
|