Innova2 flex app not finding ConnectX device

I have installed the Nvidia OFED driver and made the innova2 flex app. I then run it as follows:

$ sudo ./innova2_flex_app -vvv 
Device /dev/*_mlx_fpga_bope not found
Device /dev/*0_mlx5_fpga_tools not found
===============================================
Verbosity:        3
BOPE device:      None
ConnectX device:  None
Cannot find appropriate ConnectX device

The application fails to find the device.
This is my output from lspci:

    0d:00.0 PCI bridge: Mellanox Technologies MT28800 Family [ConnectX-5 PCIe Bridge]
    0e:08.0 PCI bridge: Mellanox Technologies MT28800 Family [ConnectX-5 PCIe Bridge]
    0e:10.0 PCI bridge: Mellanox Technologies MT28800 Family [ConnectX-5 PCIe Bridge]
    10:00.0 Ethernet controller: Mellanox Technologies MT27800 Family [ConnectX-5]
    10:00.1 Ethernet controller: Mellanox Technologies MT27800 Family [ConnectX-5]

Any ideas? Thanks

The ConnectX device (mlx5_fpga_tools) is created by running sudo insmod /usr/lib/modules/5.8.0-43-generic/updates/dkms/mlx5_fpga_tools.ko

The BOPE device is created by running sudo ~/Innova_2_Flex_Open_18_12/driver/make_device

Try the following:

sudo mst start
sudo mst status
sudo mst status -v
sudo flint -d /dev/mst/mt4119_pciconf0 q
cd ~/Innova_2_Flex_Open_18_12/driver/
sudo ./make_device
sudo insmod /usr/lib/modules/`uname -r`/updates/dkms/mlx5_fpga_tools.ko
lsmod | grep mlx
cd ~
sudo ~/Innova_2_Flex_Open_18_12/app/innova2_flex_app -v

I have some detailed notes regarding the Innova-2.

After installing MLNX_OFED_LINUX-5.8-4.1.5.0-rhel9.3-x86_64, I do not see mlx5_fpga_tools.ko on my system.

Make sure the kernel on your system is the Officially Supported 5.14.0-362.8.1.el9_3.x86_64 Kernel. Check with uname -rp. Uninstall all other kernels to avoid conflicts and installation issues.

Is dkms installed? Are you getting any errors during the MLNX_OFED install?

dkms was already installed. Here is what I did:

$ uname -rp
5.14.0-362.18.1.el9_3.x86_64 x86_64
$ sudo /run/media/notooth/CDROM/mlnxofedinstall
Logs dir: /tmp/MLNX_OFED_LINUX.6569.logs
General log file: /tmp/MLNX_OFED_LINUX.6569.logs/general.log
Verifying KMP rpms compatibility with target kernel...
The kernel KMP rpms coming with MLNX_OFED_LINUX are not compatible with kernel: 5.14.0-362.18.1.el9_3.x86_64
See log at /tmp/MLNX_OFED_LINUX.6569.logs/is_kmp_compat_check.log

The 5.14.0-362.18.1.el9_3.x86_64 kernel is installed, MLNX_OFED_LINUX does not have drivers available for this kernel.
You can run mlnx_add_kernel_support.sh in order to to generate an MLNX_OFED_LINUX package with drivers for this kernel.
Or, you can provide '--add-kernel-support' flag to generate an MLNX_OFED_LINUX package and automatically start the installation.
$ sudo /run/media/notooth/CDROM/mlnxofedinstall --add-kernel-support
Uninstalling the previous version of MLNX_OFED_LINUX
Installing /tmp/MLNX_OFED_LINUX-5.8-4.1.5.0-5.14.0-362.18.1.el9_3.x86_64/MLNX_OFED_LINUX-5.8-4.1.5.0-rhel9.3-ext
/tmp/MLNX_OFED_LINUX-5.8-4.1.5.0-5.14.0-362.18.1.el9_3.x86_64/MLNX_OFED_LINUX-5.8-4.1.5.0-rhel9.3-ext/mlnxofedinstall --force 
Logs dir: /tmp/MLNX_OFED_LINUX.433913.logs
General log file: /tmp/MLNX_OFED_LINUX.433913.logs/general.log
This program will install the MLNX_OFED_LINUX package on your machine.
Note that all other Mellanox, OEM, OFED, RDMA or Distribution IB packages will be removed.
Those packages are removed due to conflicts with MLNX_OFED_LINUX, do not reinstall them.


rpm --nosignature -e --allmatches --nodeps mft

Starting MLNX_OFED_LINUX-5.8-4.1.5.0 installation ...

Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Installing mlnx-ofa_kernel 5.8 RPM
Verifying...                          ########################################
Preparing...                          ########################################
Updating / installing...
mlnx-ofa_kernel-5.8-OFED.5.8.4.1.5.1.r########################################
Installing mlnx-ofa_kernel-modules 5.8 RPM
Failed to install mlnx-ofa_kernel-modules 5.8 RPM
Collecting debug info...
See /tmp/MLNX_OFED_LINUX.433913.logs/mlnx-ofa_kernel-modules-5.8.rpminstall.log
Failed to install MLNX_OFED_LINUX-5.8-4.1.5.0-rhel9.3-ext for 5.14.0-362.18.1.el9_3.x86_64
5.14.0-362.18.1.el9_3.x86_64  <-- installed kernel
5.14.0-362.8.1.el9_3.x86_64   <-- officially supported kernel

Downgrade your kernel to 5.14.0-362.8.1.el9_3.x86_64 and uninstall all other kernels.

I still do not see mlx5_fpga_tools.ko on my system with the supported kernel:

$ uname -rp
5.14.0-362.8.1.el9_3.x86_64 x86_64


$ sudo /run/media/notooth/CDROM/mlnxofedinstall
Logs dir: /tmp/MLNX_OFED_LINUX.3112.logs
General log file: /tmp/MLNX_OFED_LINUX.3112.logs/general.log
Verifying KMP rpms compatibility with target kernel...
This program will install the MLNX_OFED_LINUX package on your machine.
Note that all other Mellanox, OEM, OFED, RDMA or Distribution IB packages will be removed.
Those packages are removed due to conflicts with MLNX_OFED_LINUX, do not reinstall them.

Do you want to continue?[y/N]:y


rpm --nosignature -e --allmatches --nodeps mlnx-ofa_kernel libibverbs mlnx-tools mlnx-ofa_kernel libibverbs mlnx-tools mlnx-ofa_kernel-5.8-OFED.5.8.4.1.5.1.rhel9u3.x86_64

Starting MLNX_OFED_LINUX-5.8-4.1.5.0 installation ...

Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Installing mlnx-ofa_kernel RPM
Verifying...                          ########################################
Preparing...                          ########################################
Updating / installing...
mlnx-ofa_kernel-5.8-OFED.5.8.4.1.5.1.r########################################
Installing kmod-mlnx-ofa_kernel 5.8 RPM
Verifying...                          ########################################
Preparing...                          ########################################
Installing mlnx-ofa_kernel-devel RPM
Verifying...                          ########################################
Preparing...                          ########################################
Updating / installing...
mlnx-ofa_kernel-devel-5.8-OFED.5.8.4.1########################################
Installing mlnx-ofa_kernel-source RPM
Verifying...                          ########################################
Preparing...                          ########################################
Updating / installing...
mlnx-ofa_kernel-source-5.8-OFED.5.8.4.########################################
Installing kmod-kernel-mft-mlnx 4.22.1 RPM
Verifying...                          ########################################
Preparing...                          ########################################
Installing knem RPM
Verifying...                          ########################################
Preparing...                          ########################################
Updating / installing...
knem-1.1.4.90mlnx3-OFED.23.10.0.2.1.1.########################################
Installing kmod-knem 1.1.4.90mlnx3 RPM
Verifying...                          ########################################
Preparing...                          ########################################
Installing xpmem RPM
Verifying...                          ########################################
Preparing...                          ########################################
Updating / installing...
xpmem-2.7.3-1.58415.rhel9u3           ########################################
Installing kmod-xpmem 2.7.3 RPM
Verifying...                          ########################################
Preparing...                          ########################################
Installing kmod-iser 5.8 RPM
Verifying...                          ########################################
Preparing...                          ########################################
Installing kmod-srp 5.8 RPM
Verifying...                          ########################################
Preparing...                          ########################################
Installing kmod-isert 5.8 RPM
Verifying...                          ########################################
Preparing...                          ########################################
Installing libxpmem 2.7.3 RPM
Verifying...                          ########################################
Preparing...                          ########################################
Updating / installing...
libxpmem-2.7.3-1.58415.rhel9u3        ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Installing user level RPMs:
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################
Verifying...                          ########################################
Preparing...                          ########################################

Installation finished successfully.


Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:mlnx-fw-updater-5.8-4.1.5.0      ################################# [100%]

Added 'RUN_FW_UPDATER_ONBOOT=no to /etc/infiniband/openib.conf

Initializing...
Attempting to perform Firmware update...
No devices found!

To load the new driver, run:
/etc/init.d/openibd restart


$ sudo find / -name mlx5_fpga_tools
find: ‘/proc/97312’: No such file or directory
find: ‘/run/user/1000/gvfs’: Permission denied

I checked the MLNX_OFED releases and the latest version that includes mlx5_fpga_tools is 5.2.

The latest usable kernel is therefore 4.18.0-240.el8.x86_64 on RHEL/CentOS 8.3.

Enabling/Disabling JTAG and switching the Active FPGA Configuration image is possible using mstreg from mstflint 4.26.0.

See Innova-2: MLNX_OFED > 5.2 has no mlx5_fpga_tools so innova2_flex_app fails

I have just bought an MNV303212A card and installed OFED driver, but I cannot see the device in Innova2 flex app. Can you help?

$ lspci | grep -i Mellanox
15:00.0 PCI bridge: Mellanox Technologies MT28800 Family [ConnectX-5 PCIe Bridge]
16:08.0 PCI bridge: Mellanox Technologies MT28800 Family [ConnectX-5 PCIe Bridge]
16:10.0 PCI bridge: Mellanox Technologies MT28800 Family [ConnectX-5 PCIe Bridge]
17:00.0 Class 2000: Mellanox Technologies Innova-2 Flex Shell Logic
18:00.0 Ethernet controller: Mellanox Technologies MT27800 Family [ConnectX-5]

$ sudo mst start
Starting MST (Mellanox Software Tools) driver set
Loading MST PCI module - Success
Loading MST PCI configuration module - Success
Create devices
Unloading MST PCI module (unused) - Success

$ sudo mst status -v
MST modules:
------------
    MST PCI module is not loaded
    MST PCI configuration module loaded
PCI devices:
------------
DEVICE_TYPE             MST                           PCI       RDMA            NET                       NUMA  
ConnectX5(rev:0)        /dev/mst/mt4119_pciconf0      18:00.0   mlx5_0          net-ens5                  -1

$ sudo flint --device /dev/mst/mt4119_pciconf0 query
Image type:            FS4
FW Version:            16.22.1002
FW Release Date:       23.2.2018
Description:           UID                GuidsNumber
Base GUID:             506b4b0300446f82        12
Base MAC:              506b4b446f82            12
Image VSD:             N/A
Device VSD:            N/A
PSID:                  MT_0000000142
Security Attributes:   N/A

$ sudo insmod mlx_fpga_bope.ko

$ sudo app/innova2_flex_app -v
===============================================
 Verbosity:        1
 BOPE device:      None
 ConnectX device:  None
Cannot find appropriate ConnectX device

You have the 4GB MNV303212A-ADIT. See innova2_4gb_adit_xdma_ddr4_demo

To continue using innova2_flex_app under Ubuntu 20.04, load your board with the ADLT firmware.

Or, add a Quad SPI block to your designs and use XRT for programming on any OS.

The good news is that the MNV303212A-ADIT has a direct connection between one of its SFP ports and the FPGA.