I've installed a Mellanox MT26448 based card, which appears to be recognized:
# dmesg|grep mlx4
mlx4_core0: <mlx4_core> mem 0xdf200000-0xdf2fffff,0xdf800000-0xdfffffff irq 22 at device 0.0 on pci4
mlx4_core: Mellanox ConnectX core driver v3.4.1 (October 2017)
mlx4_core: Initializing mlx4_core
mlx4_core0: Unable to determine PCI device chain minimum BW
# pciconf -lcbv mlx4_core0@pci0:4:0:0:
mlx4_core0@pci0:4:0:0: class=0x020000 card=0x002115b3 chip=0x675015b3 rev=0xb0 hdr=0x00
vendor = 'Mellanox Technologies'
device = 'MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s]'
class = network
subclass = ethernet
bar  = type Memory, range 64, base rxdf200000, size 1048576, enabled
bar  = type Prefetchable Memory, range 64, base rxdf800000, size 8388608, enabled
cap 01 = powerspec 3 supports D0 D3 current D0
cap 03 = VPD
cap 11[9c] = MSI-X supports 128 messages, enabled
Table in map 0x10[0x7c000], PBA in map 0x10[0x7d000]
cap 10 = PCI-Express 2 endpoint max data 128(256) FLR
link x8(x8) speed 5.0(5.0) ASPM disabled(L0s)
ecap 000e = ARI 1
ecap 0003 = Serial 1 0002c90300529b42
However, the interface never appears in ifconfig, and is therefore unusable. If it will help I can give devs a remote shell account to a machine with the card in it.
After much hassle, I've gotten the card to work under 12.0-RELEASE. The issue is that this card requires "options INET6" in the kernel, but this is *not* documented anywhere in MLX4EN(4)! This really needs to be documented for a few reasons:
1. Other cards that have similar IPv6 only options do not display this behavior when IPv6 is removed from the kernel. For example, look at the overlap in options between this card and an igb interface:
They are nearly identical, yet the igb interface will continue to work without IPv6 while the mlxen will not.
2. There is no hint anywhere that I can see, in dmesg, ifconfig, or even Mellanox's own software (mst) that this is the cause when your interface doesn't appear.
3. Some of us still live in the one country that hates IPv6 and thus aren't in the habit of keeping it in our kernels.
I'll reassign the PR to documentation.