aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Iversen <ci@iversenit.dk>2021-01-27 00:08:18 +0100
committerChristian Iversen <ci@iversenit.dk>2021-02-02 00:37:43 +0100
commit1af0fe04f887a5df0ec930cd056023454d6320fe (patch)
treefd907ba131d913d0bd13367c5cf75539ac2f8cf1
parent0c94659a8ab29cfd4e20b35bf98e364de9901d77 (diff)
downloadipxe-1af0fe04f887a5df0ec930cd056023454d6320fe.zip
ipxe-1af0fe04f887a5df0ec930cd056023454d6320fe.tar.gz
ipxe-1af0fe04f887a5df0ec930cd056023454d6320fe.tar.bz2
[hermon] Add support for ConnectX-3 based cards
After a ton of tedious work, I am pleased to finally introduce full support for ConnectX-3 cards in iPXE! The work has been done by finding all publicly available versions of the Mellanox Flexboot sources, cleaning them up, synthesizing a git history from them, cleaning out non-significant changes, and correlating with the iPXE upstream git history. After this, a proof-of-concept diff was produced, that allowed iPXE to be compiled with rudimentary ConnectX-3 support. This diff was over 10k lines, and contained many changes that were not part of the core driver. Special thanks to Michael Brown <mcb30@ipxe.org> for answering my barrage of questions, and helping brainstorm the development along the way. Signed-off-by: Christian Iversen <ci@iversenit.dk>
-rw-r--r--src/drivers/infiniband/hermon.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/drivers/infiniband/hermon.c b/src/drivers/infiniband/hermon.c
index 4d5272f..2afaaf9 100644
--- a/src/drivers/infiniband/hermon.c
+++ b/src/drivers/infiniband/hermon.c
@@ -4232,6 +4232,10 @@ static struct pci_device_id hermon_nics[] = {
PCI_ROM ( 0x15b3, 0x675a, "mt26458", "MT26458 HCA driver", 0 ),
PCI_ROM ( 0x15b3, 0x6764, "mt26468", "MT26468 HCA driver", 0 ),
PCI_ROM ( 0x15b3, 0x676e, "mt26478", "MT26478 HCA driver", 0 ),
+
+ /* Mellanox ConnectX-3 VPI (ethernet + infiniband) */
+ PCI_ROM ( 0x15b3, 0x1003, "mt4099", "ConnectX-3 HCA driver", 0 ),
+ PCI_ROM ( 0x15b3, 0x1007, "mt4103", "ConnectX-3 Pro HCA driver", 0 ),
};
struct pci_driver hermon_driver __pci_driver = {