From ba9ef590b789d510dabf3487e0a814583b8839e4 Mon Sep 17 00:00:00 2001 From: Alex Forencich Date: Mon, 9 May 2022 13:43:47 -0700 Subject: [PATCH] Use Cisco Nexus part numbers for Cisco Nexus boards Signed-off-by: Alex Forencich --- README.md | 4 ++-- docs/source/devicelist.rst | 18 +++++++------- docs/source/index.rst | 4 ++-- fpga/mqnic/ExaNIC_X10/fpga/README.md | 24 ------------------- fpga/mqnic/ExaNIC_X25/fpga_25g/README.md | 24 ------------------- .../{ExaNIC_X10 => Nexus_K35_S}/fpga/Makefile | 0 fpga/mqnic/Nexus_K35_S/fpga/README.md | 20 ++++++++++++++++ .../{ExaNIC_X10 => Nexus_K35_S}/fpga/app | 0 .../{ExaNIC_X10 => Nexus_K35_S}/fpga/boot.xdc | 0 .../fpga/common/vivado.mk | 0 .../{ExaNIC_X10 => Nexus_K35_S}/fpga/fpga.xdc | 2 +- .../fpga/fpga/Makefile | 0 .../fpga/fpga/config.tcl | 0 .../fpga/ip/eth_xcvr_gth.tcl | 0 .../fpga/ip/pcie3_ultrascale_0.tcl | 0 .../{ExaNIC_X10 => Nexus_K35_S}/fpga/lib | 0 .../fpga/rtl/common | 0 .../fpga/rtl/fpga.v | 0 .../fpga/rtl/fpga_core.v | 0 .../fpga/rtl/sync_signal.v | 0 .../fpga/tb/fpga_core/Makefile | 0 .../fpga/tb/fpga_core/mqnic.py | 0 .../fpga/tb/fpga_core/test_fpga_core.py | 0 .../fpga_25g/Makefile | 0 fpga/mqnic/Nexus_K3P_S/fpga_25g/README.md | 18 ++++++++++++++ .../{ExaNIC_X25 => Nexus_K3P_S}/fpga_25g/app | 0 .../fpga_25g/boot.xdc | 0 .../fpga_25g/common/vivado.mk | 0 .../fpga_25g/fpga.xdc | 2 +- .../fpga_25g/fpga/Makefile | 0 .../fpga_25g/fpga/config.tcl | 0 .../fpga_25g/fpga_10g/Makefile | 0 .../fpga_25g/fpga_10g/config.tcl | 0 .../fpga_25g/ip/eth_xcvr_gty.tcl | 0 .../fpga_25g/ip/pcie4_uscale_plus_0.tcl | 0 .../{ExaNIC_X25 => Nexus_K3P_S}/fpga_25g/lib | 0 .../fpga_25g/rtl/common | 0 .../fpga_25g/rtl/fpga.v | 0 .../fpga_25g/rtl/fpga_core.v | 0 .../fpga_25g/rtl/sync_signal.v | 0 .../fpga_25g/tb/fpga_core/Makefile | 0 .../fpga_25g/tb/fpga_core/mqnic.py | 0 .../fpga_25g/tb/fpga_core/test_fpga_core.py | 0 modules/mqnic/mqnic_board.c | 4 ++-- modules/mqnic/mqnic_hw.h | 4 ++-- 45 files changed, 57 insertions(+), 67 deletions(-) delete mode 100644 fpga/mqnic/ExaNIC_X10/fpga/README.md delete mode 100644 fpga/mqnic/ExaNIC_X25/fpga_25g/README.md rename fpga/mqnic/{ExaNIC_X10 => Nexus_K35_S}/fpga/Makefile (100%) create mode 100644 fpga/mqnic/Nexus_K35_S/fpga/README.md rename fpga/mqnic/{ExaNIC_X10 => Nexus_K35_S}/fpga/app (100%) rename fpga/mqnic/{ExaNIC_X10 => Nexus_K35_S}/fpga/boot.xdc (100%) rename fpga/mqnic/{ExaNIC_X10 => Nexus_K35_S}/fpga/common/vivado.mk (100%) rename fpga/mqnic/{ExaNIC_X10 => Nexus_K35_S}/fpga/fpga.xdc (99%) rename fpga/mqnic/{ExaNIC_X10 => Nexus_K35_S}/fpga/fpga/Makefile (100%) rename fpga/mqnic/{ExaNIC_X10 => Nexus_K35_S}/fpga/fpga/config.tcl (100%) rename fpga/mqnic/{ExaNIC_X10 => Nexus_K35_S}/fpga/ip/eth_xcvr_gth.tcl (100%) rename fpga/mqnic/{ExaNIC_X10 => Nexus_K35_S}/fpga/ip/pcie3_ultrascale_0.tcl (100%) rename fpga/mqnic/{ExaNIC_X10 => Nexus_K35_S}/fpga/lib (100%) rename fpga/mqnic/{ExaNIC_X10 => Nexus_K35_S}/fpga/rtl/common (100%) rename fpga/mqnic/{ExaNIC_X10 => Nexus_K35_S}/fpga/rtl/fpga.v (100%) rename fpga/mqnic/{ExaNIC_X10 => Nexus_K35_S}/fpga/rtl/fpga_core.v (100%) rename fpga/mqnic/{ExaNIC_X10 => Nexus_K35_S}/fpga/rtl/sync_signal.v (100%) rename fpga/mqnic/{ExaNIC_X10 => Nexus_K35_S}/fpga/tb/fpga_core/Makefile (100%) rename fpga/mqnic/{ExaNIC_X10 => Nexus_K35_S}/fpga/tb/fpga_core/mqnic.py (100%) rename fpga/mqnic/{ExaNIC_X10 => Nexus_K35_S}/fpga/tb/fpga_core/test_fpga_core.py (100%) rename fpga/mqnic/{ExaNIC_X25 => Nexus_K3P_S}/fpga_25g/Makefile (100%) create mode 100644 fpga/mqnic/Nexus_K3P_S/fpga_25g/README.md rename fpga/mqnic/{ExaNIC_X25 => Nexus_K3P_S}/fpga_25g/app (100%) rename fpga/mqnic/{ExaNIC_X25 => Nexus_K3P_S}/fpga_25g/boot.xdc (100%) rename fpga/mqnic/{ExaNIC_X25 => Nexus_K3P_S}/fpga_25g/common/vivado.mk (100%) rename fpga/mqnic/{ExaNIC_X25 => Nexus_K3P_S}/fpga_25g/fpga.xdc (99%) rename fpga/mqnic/{ExaNIC_X25 => Nexus_K3P_S}/fpga_25g/fpga/Makefile (100%) rename fpga/mqnic/{ExaNIC_X25 => Nexus_K3P_S}/fpga_25g/fpga/config.tcl (100%) rename fpga/mqnic/{ExaNIC_X25 => Nexus_K3P_S}/fpga_25g/fpga_10g/Makefile (100%) rename fpga/mqnic/{ExaNIC_X25 => Nexus_K3P_S}/fpga_25g/fpga_10g/config.tcl (100%) rename fpga/mqnic/{ExaNIC_X25 => Nexus_K3P_S}/fpga_25g/ip/eth_xcvr_gty.tcl (100%) rename fpga/mqnic/{ExaNIC_X25 => Nexus_K3P_S}/fpga_25g/ip/pcie4_uscale_plus_0.tcl (100%) rename fpga/mqnic/{ExaNIC_X25 => Nexus_K3P_S}/fpga_25g/lib (100%) rename fpga/mqnic/{ExaNIC_X25 => Nexus_K3P_S}/fpga_25g/rtl/common (100%) rename fpga/mqnic/{ExaNIC_X25 => Nexus_K3P_S}/fpga_25g/rtl/fpga.v (100%) rename fpga/mqnic/{ExaNIC_X25 => Nexus_K3P_S}/fpga_25g/rtl/fpga_core.v (100%) rename fpga/mqnic/{ExaNIC_X25 => Nexus_K3P_S}/fpga_25g/rtl/sync_signal.v (100%) rename fpga/mqnic/{ExaNIC_X25 => Nexus_K3P_S}/fpga_25g/tb/fpga_core/Makefile (100%) rename fpga/mqnic/{ExaNIC_X25 => Nexus_K3P_S}/fpga_25g/tb/fpga_core/mqnic.py (100%) rename fpga/mqnic/{ExaNIC_X25 => Nexus_K3P_S}/fpga_25g/tb/fpga_core/test_fpga_core.py (100%) diff --git a/README.md b/README.md index d620aa284..8a177f9d6 100644 --- a/README.md +++ b/README.md @@ -24,8 +24,8 @@ Corundum currently supports devices from both Xilinx and Intel, on boards from s * Alpha Data ADM-PCIE-9V3 (Xilinx Virtex UltraScale+ XCVU3P) * Dini Group DNPCIe_40G_KU_LL_2QSFP (Xilinx Kintex UltraScale XCKU040) -* Exablaze ExaNIC X10/Cisco Nexus K35-S (Xilinx Kintex UltraScale XCKU035) -* Exablaze ExaNIC X25/Cisco Nexus K3P-S (Xilinx Kintex UltraScale+ XCKU3P) +* Cisco Nexus K35-S (Xilinx Kintex UltraScale XCKU035) +* Cisco Nexus K3P-S (Xilinx Kintex UltraScale+ XCKU3P) * Silicom fb2CG@KU15P (Xilinx Kintex UltraScale+ XCKU15P) * NetFPGA SUME (Xilinx Virtex 7 XC7V690T) * BittWare XUP-P3R (Xilinx Virtex UltraScale+ XCVU9P) diff --git a/docs/source/devicelist.rst b/docs/source/devicelist.rst index 6b5726d38..e93b54bdd 100644 --- a/docs/source/devicelist.rst +++ b/docs/source/devicelist.rst @@ -18,8 +18,8 @@ This section details PCIe form-factor targets, which interface with a separate h ============ ======================= ==================== ========== Alpha Data ADM-PCIE-9V3 XCVU3P-2FFVC1517I 0x41449003 Dini Group DNPCIe_40G_KU_LL_2QSFP XCKU040-2FFVA1156E 0x17df1a00 - Exablaze ExaNIC X10 XCKU035-2FBVA676E 0x1ce40003 - Exablaze ExaNIC X25 XCKU3P-2FFVB676E 0x1ce40009 + Cisco Nexus K35-S XCKU035-2FBVA676E 0x1ce40003 + Cisco Nexus K3P-S XCKU3P-2FFVB676E 0x1ce40009 Silicom fb2CG\@KU15P XCKU15P-2FFVE1760E 0x1c2ca00e Digilent NetFPGA SUME XC7V690T-3FFG1761 0x10ee7028 BittWare XUP-P3R XCVU9P-2FLGB2104E 0x12ba9823 @@ -42,8 +42,8 @@ This section details PCIe form-factor targets, which interface with a separate h ======================= ========= ========== =============================== ===== ADM-PCIE-9V3 Gen 3 x16 2x QSFP28 16 GB DDR4 2400 (2x 1G x72) \- DNPCIe_40G_KU_LL_2QSFP Gen 3 x8 2x QSFP+ 4 GB DDR4 2400 (512M x72) \- - ExaNIC X10 Gen 3 x8 2x SFP+ \- \- - ExaNIC X25 Gen 3 x8 2x SFP28 \- \- + Nexus K35-S Gen 3 x8 2x SFP+ \- \- + Nexus K3P-S Gen 3 x8 2x SFP28 4 GB DDR4 (1G x32) \- fb2CG\@KU15P Gen 3 x16 2x QSFP28 16 GB DDR4 2400 (4x 512M x72) \- NetFPGA SUME Gen 3 x8 4x SFP+ 8 GB DDR3 1866 (2x 512M x64) \- XUP-P3R Gen 3 x16 4x QSFP28 4x DDR4 2400 DIMM (4x x72) \- @@ -66,8 +66,8 @@ This section details PCIe form-factor targets, which interface with a separate h ======================= ============ ============ ========== ADM-PCIE-9V3 N :sup:`3` Y :sup:`5` Y DNPCIe_40G_KU_LL_2QSFP Y N :sup:`3` Y - ExaNIC X10 N :sup:`3` Y Y - ExaNIC X25 N :sup:`3` Y Y + Nexus K35-S N :sup:`3` Y Y + Nexus K3P-S N :sup:`3` Y Y fb2CG\@KU15P Y Y Y NetFPGA SUME Y N :sup:`7` N :sup:`8` XUP-P3R Y Y Y @@ -104,9 +104,9 @@ This section details PCIe form-factor targets, which interface with a separate h ADM-PCIE-9V3 mqnic/fpga_100g/fpga_tdma 2x1 256/256 100G TDMA DNPCIe_40G_KU_LL_2QSFP mqnic/fpga/fpga_ku040 2x1 256/2K 10G RR DNPCIe_40G_KU_LL_2QSFP mqnic/fpga/fpga_ku060 2x1 256/2K 10G RR - ExaNIC X10 mqnic/fpga/fpga 2x1 256/2K 10G RR - ExaNIC X25 mqnic/fpga_25g/fpga 2x1 256/8K 25G RR - ExaNIC X25 mqnic/fpga_25g/fpga_10g 2x1 256/8K 10G RR + Nexus K35-S mqnic/fpga/fpga 2x1 256/2K 10G RR + Nexus K3P-S mqnic/fpga_25g/fpga 2x1 256/8K 25G RR + Nexus K3P-S mqnic/fpga_25g/fpga_10g 2x1 256/8K 10G RR fb2CG\@KU15P mqnic/fpga_25g/fpga 2x1 256/8K 25G RR fb2CG\@KU15P mqnic/fpga_25g/fpga_10g 2x1 256/8K 10G RR fb2CG\@KU15P mqnic/fpga_25g/fpga_tdma 2x1 256/256 25G TDMA diff --git a/docs/source/index.rst b/docs/source/index.rst index ef9ddfeb9..e62ef6146 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -16,8 +16,8 @@ Corundum currently supports devices from both Xilinx and Intel, on boards from s * Alpha Data ADM-PCIE-9V3 (Xilinx Virtex UltraScale+ XCVU3P) * Dini Group DNPCIe_40G_KU_LL_2QSFP (Xilinx Kintex UltraScale XCKU040) -* Exablaze ExaNIC X10/Cisco Nexus K35-S (Xilinx Kintex UltraScale XCKU035) -* Exablaze ExaNIC X25/Cisco Nexus K3P-S (Xilinx Kintex UltraScale+ XCKU3P) +* Cisco Nexus K35-S (Xilinx Kintex UltraScale XCKU035) +* Cisco Nexus K3P-S (Xilinx Kintex UltraScale+ XCKU3P) * Silicom fb2CG\@KU15P (Xilinx Kintex UltraScale+ XCKU15P) * NetFPGA SUME (Xilinx Virtex 7 XC7V690T) * BittWare XUP-P3R (Xilinx Virtex UltraScale+ XCVU9P) diff --git a/fpga/mqnic/ExaNIC_X10/fpga/README.md b/fpga/mqnic/ExaNIC_X10/fpga/README.md deleted file mode 100644 index 476f8c8f8..000000000 --- a/fpga/mqnic/ExaNIC_X10/fpga/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# Corundum mqnic for ExaNIC X10/Cisco Nexus K35-S - -## Introduction - -This design targets the Exablaze ExaNIC X10/Cisco Nexus K35-S FPGA board. - -FPGA: xcku035-fbva676-2-e -PHY: 10G BASE-R PHY IP core and internal GTH transceiver - -## How to build - -Run make to build. Ensure that the Xilinx Vivado toolchain components are -in PATH. - -Run make to build the driver. Ensure the headers for the running kernel are -installed, otherwise the driver cannot be compiled. - -## How to test - -Run make program to program the ExaNIC X10 board with Vivado. Then load the -driver with insmod mqnic.ko. Check dmesg for output from driver -initialization. - - diff --git a/fpga/mqnic/ExaNIC_X25/fpga_25g/README.md b/fpga/mqnic/ExaNIC_X25/fpga_25g/README.md deleted file mode 100644 index cf85afeff..000000000 --- a/fpga/mqnic/ExaNIC_X25/fpga_25g/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# Corundum mqnic for ExaNIC X25/Cisco Nexus K3P-S - -## Introduction - -This design targets the Exablaze ExaNIC X25/Cisco Nexus K3P-S FPGA board. - -FPGA: xcku3p-ffvb676-2-e -PHY: 25G BASE-R PHY IP core and internal GTY transceiver - -## How to build - -Run make to build. Ensure that the Xilinx Vivado toolchain components are -in PATH. - -Run make to build the driver. Ensure the headers for the running kernel are -installed, otherwise the driver cannot be compiled. - -## How to test - -Run make program to program the ExaNIC X25 board with Vivado. Then load the -driver with insmod mqnic.ko. Check dmesg for output from driver -initialization. - - diff --git a/fpga/mqnic/ExaNIC_X10/fpga/Makefile b/fpga/mqnic/Nexus_K35_S/fpga/Makefile similarity index 100% rename from fpga/mqnic/ExaNIC_X10/fpga/Makefile rename to fpga/mqnic/Nexus_K35_S/fpga/Makefile diff --git a/fpga/mqnic/Nexus_K35_S/fpga/README.md b/fpga/mqnic/Nexus_K35_S/fpga/README.md new file mode 100644 index 000000000..c01159f5e --- /dev/null +++ b/fpga/mqnic/Nexus_K35_S/fpga/README.md @@ -0,0 +1,20 @@ +# Corundum mqnic for Cisco Nexus K35-S + +## Introduction + +This design targets the Cisco Nexus K35-S FPGA board. + +* FPGA: xcku035-fbva676-2-e +* PHY: 10G BASE-R PHY IP core and internal GTH transceiver + +## How to build + +Run make to build. Ensure that the Xilinx Vivado toolchain components are in PATH. + +Run make to build the driver. Ensure the headers for the running kernel are installed, otherwise the driver cannot be compiled. + +## How to test + +Run make program to program the Nexus K35-S board with Vivado. Then load the driver with insmod mqnic.ko. Check dmesg for output from driver initialization. + + diff --git a/fpga/mqnic/ExaNIC_X10/fpga/app b/fpga/mqnic/Nexus_K35_S/fpga/app similarity index 100% rename from fpga/mqnic/ExaNIC_X10/fpga/app rename to fpga/mqnic/Nexus_K35_S/fpga/app diff --git a/fpga/mqnic/ExaNIC_X10/fpga/boot.xdc b/fpga/mqnic/Nexus_K35_S/fpga/boot.xdc similarity index 100% rename from fpga/mqnic/ExaNIC_X10/fpga/boot.xdc rename to fpga/mqnic/Nexus_K35_S/fpga/boot.xdc diff --git a/fpga/mqnic/ExaNIC_X10/fpga/common/vivado.mk b/fpga/mqnic/Nexus_K35_S/fpga/common/vivado.mk similarity index 100% rename from fpga/mqnic/ExaNIC_X10/fpga/common/vivado.mk rename to fpga/mqnic/Nexus_K35_S/fpga/common/vivado.mk diff --git a/fpga/mqnic/ExaNIC_X10/fpga/fpga.xdc b/fpga/mqnic/Nexus_K35_S/fpga/fpga.xdc similarity index 99% rename from fpga/mqnic/ExaNIC_X10/fpga/fpga.xdc rename to fpga/mqnic/Nexus_K35_S/fpga/fpga.xdc index 05cff21d1..75ce3104d 100644 --- a/fpga/mqnic/ExaNIC_X10/fpga/fpga.xdc +++ b/fpga/mqnic/Nexus_K35_S/fpga/fpga.xdc @@ -1,4 +1,4 @@ -# XDC constraints for the ExaNIC X10 +# XDC constraints for the Cisco Nexus K35-S # part: xcku035-fbva676-2-e # General configuration diff --git a/fpga/mqnic/ExaNIC_X10/fpga/fpga/Makefile b/fpga/mqnic/Nexus_K35_S/fpga/fpga/Makefile similarity index 100% rename from fpga/mqnic/ExaNIC_X10/fpga/fpga/Makefile rename to fpga/mqnic/Nexus_K35_S/fpga/fpga/Makefile diff --git a/fpga/mqnic/ExaNIC_X10/fpga/fpga/config.tcl b/fpga/mqnic/Nexus_K35_S/fpga/fpga/config.tcl similarity index 100% rename from fpga/mqnic/ExaNIC_X10/fpga/fpga/config.tcl rename to fpga/mqnic/Nexus_K35_S/fpga/fpga/config.tcl diff --git a/fpga/mqnic/ExaNIC_X10/fpga/ip/eth_xcvr_gth.tcl b/fpga/mqnic/Nexus_K35_S/fpga/ip/eth_xcvr_gth.tcl similarity index 100% rename from fpga/mqnic/ExaNIC_X10/fpga/ip/eth_xcvr_gth.tcl rename to fpga/mqnic/Nexus_K35_S/fpga/ip/eth_xcvr_gth.tcl diff --git a/fpga/mqnic/ExaNIC_X10/fpga/ip/pcie3_ultrascale_0.tcl b/fpga/mqnic/Nexus_K35_S/fpga/ip/pcie3_ultrascale_0.tcl similarity index 100% rename from fpga/mqnic/ExaNIC_X10/fpga/ip/pcie3_ultrascale_0.tcl rename to fpga/mqnic/Nexus_K35_S/fpga/ip/pcie3_ultrascale_0.tcl diff --git a/fpga/mqnic/ExaNIC_X10/fpga/lib b/fpga/mqnic/Nexus_K35_S/fpga/lib similarity index 100% rename from fpga/mqnic/ExaNIC_X10/fpga/lib rename to fpga/mqnic/Nexus_K35_S/fpga/lib diff --git a/fpga/mqnic/ExaNIC_X10/fpga/rtl/common b/fpga/mqnic/Nexus_K35_S/fpga/rtl/common similarity index 100% rename from fpga/mqnic/ExaNIC_X10/fpga/rtl/common rename to fpga/mqnic/Nexus_K35_S/fpga/rtl/common diff --git a/fpga/mqnic/ExaNIC_X10/fpga/rtl/fpga.v b/fpga/mqnic/Nexus_K35_S/fpga/rtl/fpga.v similarity index 100% rename from fpga/mqnic/ExaNIC_X10/fpga/rtl/fpga.v rename to fpga/mqnic/Nexus_K35_S/fpga/rtl/fpga.v diff --git a/fpga/mqnic/ExaNIC_X10/fpga/rtl/fpga_core.v b/fpga/mqnic/Nexus_K35_S/fpga/rtl/fpga_core.v similarity index 100% rename from fpga/mqnic/ExaNIC_X10/fpga/rtl/fpga_core.v rename to fpga/mqnic/Nexus_K35_S/fpga/rtl/fpga_core.v diff --git a/fpga/mqnic/ExaNIC_X10/fpga/rtl/sync_signal.v b/fpga/mqnic/Nexus_K35_S/fpga/rtl/sync_signal.v similarity index 100% rename from fpga/mqnic/ExaNIC_X10/fpga/rtl/sync_signal.v rename to fpga/mqnic/Nexus_K35_S/fpga/rtl/sync_signal.v diff --git a/fpga/mqnic/ExaNIC_X10/fpga/tb/fpga_core/Makefile b/fpga/mqnic/Nexus_K35_S/fpga/tb/fpga_core/Makefile similarity index 100% rename from fpga/mqnic/ExaNIC_X10/fpga/tb/fpga_core/Makefile rename to fpga/mqnic/Nexus_K35_S/fpga/tb/fpga_core/Makefile diff --git a/fpga/mqnic/ExaNIC_X10/fpga/tb/fpga_core/mqnic.py b/fpga/mqnic/Nexus_K35_S/fpga/tb/fpga_core/mqnic.py similarity index 100% rename from fpga/mqnic/ExaNIC_X10/fpga/tb/fpga_core/mqnic.py rename to fpga/mqnic/Nexus_K35_S/fpga/tb/fpga_core/mqnic.py diff --git a/fpga/mqnic/ExaNIC_X10/fpga/tb/fpga_core/test_fpga_core.py b/fpga/mqnic/Nexus_K35_S/fpga/tb/fpga_core/test_fpga_core.py similarity index 100% rename from fpga/mqnic/ExaNIC_X10/fpga/tb/fpga_core/test_fpga_core.py rename to fpga/mqnic/Nexus_K35_S/fpga/tb/fpga_core/test_fpga_core.py diff --git a/fpga/mqnic/ExaNIC_X25/fpga_25g/Makefile b/fpga/mqnic/Nexus_K3P_S/fpga_25g/Makefile similarity index 100% rename from fpga/mqnic/ExaNIC_X25/fpga_25g/Makefile rename to fpga/mqnic/Nexus_K3P_S/fpga_25g/Makefile diff --git a/fpga/mqnic/Nexus_K3P_S/fpga_25g/README.md b/fpga/mqnic/Nexus_K3P_S/fpga_25g/README.md new file mode 100644 index 000000000..4d1a60aeb --- /dev/null +++ b/fpga/mqnic/Nexus_K3P_S/fpga_25g/README.md @@ -0,0 +1,18 @@ +# Corundum mqnic for Cisco Nexus K3P-S + +## Introduction + +This design targets the Cisco Nexus K3P-S FPGA board. + +* FPGA: xcku3p-ffvb676-2-e +* PHY: 25G BASE-R PHY IP core and internal GTY transceiver + +## How to build + +Run make to build. Ensure that the Xilinx Vivado toolchain components are in PATH. + +Run make to build the driver. Ensure the headers for the running kernel are installed, otherwise the driver cannot be compiled. + +## How to test + +Run make program to program the Nexus K3P-S board with Vivado. Then load the driver with insmod mqnic.ko. Check dmesg for output from driver initialization. diff --git a/fpga/mqnic/ExaNIC_X25/fpga_25g/app b/fpga/mqnic/Nexus_K3P_S/fpga_25g/app similarity index 100% rename from fpga/mqnic/ExaNIC_X25/fpga_25g/app rename to fpga/mqnic/Nexus_K3P_S/fpga_25g/app diff --git a/fpga/mqnic/ExaNIC_X25/fpga_25g/boot.xdc b/fpga/mqnic/Nexus_K3P_S/fpga_25g/boot.xdc similarity index 100% rename from fpga/mqnic/ExaNIC_X25/fpga_25g/boot.xdc rename to fpga/mqnic/Nexus_K3P_S/fpga_25g/boot.xdc diff --git a/fpga/mqnic/ExaNIC_X25/fpga_25g/common/vivado.mk b/fpga/mqnic/Nexus_K3P_S/fpga_25g/common/vivado.mk similarity index 100% rename from fpga/mqnic/ExaNIC_X25/fpga_25g/common/vivado.mk rename to fpga/mqnic/Nexus_K3P_S/fpga_25g/common/vivado.mk diff --git a/fpga/mqnic/ExaNIC_X25/fpga_25g/fpga.xdc b/fpga/mqnic/Nexus_K3P_S/fpga_25g/fpga.xdc similarity index 99% rename from fpga/mqnic/ExaNIC_X25/fpga_25g/fpga.xdc rename to fpga/mqnic/Nexus_K3P_S/fpga_25g/fpga.xdc index 38ae2396d..6cfa077a3 100644 --- a/fpga/mqnic/ExaNIC_X25/fpga_25g/fpga.xdc +++ b/fpga/mqnic/Nexus_K3P_S/fpga_25g/fpga.xdc @@ -1,4 +1,4 @@ -# XDC constraints for the ExaNIC X25 +# XDC constraints for the Cisco Nexus K3P-S # part: xcku3p-ffvb676-2-e # General configuration diff --git a/fpga/mqnic/ExaNIC_X25/fpga_25g/fpga/Makefile b/fpga/mqnic/Nexus_K3P_S/fpga_25g/fpga/Makefile similarity index 100% rename from fpga/mqnic/ExaNIC_X25/fpga_25g/fpga/Makefile rename to fpga/mqnic/Nexus_K3P_S/fpga_25g/fpga/Makefile diff --git a/fpga/mqnic/ExaNIC_X25/fpga_25g/fpga/config.tcl b/fpga/mqnic/Nexus_K3P_S/fpga_25g/fpga/config.tcl similarity index 100% rename from fpga/mqnic/ExaNIC_X25/fpga_25g/fpga/config.tcl rename to fpga/mqnic/Nexus_K3P_S/fpga_25g/fpga/config.tcl diff --git a/fpga/mqnic/ExaNIC_X25/fpga_25g/fpga_10g/Makefile b/fpga/mqnic/Nexus_K3P_S/fpga_25g/fpga_10g/Makefile similarity index 100% rename from fpga/mqnic/ExaNIC_X25/fpga_25g/fpga_10g/Makefile rename to fpga/mqnic/Nexus_K3P_S/fpga_25g/fpga_10g/Makefile diff --git a/fpga/mqnic/ExaNIC_X25/fpga_25g/fpga_10g/config.tcl b/fpga/mqnic/Nexus_K3P_S/fpga_25g/fpga_10g/config.tcl similarity index 100% rename from fpga/mqnic/ExaNIC_X25/fpga_25g/fpga_10g/config.tcl rename to fpga/mqnic/Nexus_K3P_S/fpga_25g/fpga_10g/config.tcl diff --git a/fpga/mqnic/ExaNIC_X25/fpga_25g/ip/eth_xcvr_gty.tcl b/fpga/mqnic/Nexus_K3P_S/fpga_25g/ip/eth_xcvr_gty.tcl similarity index 100% rename from fpga/mqnic/ExaNIC_X25/fpga_25g/ip/eth_xcvr_gty.tcl rename to fpga/mqnic/Nexus_K3P_S/fpga_25g/ip/eth_xcvr_gty.tcl diff --git a/fpga/mqnic/ExaNIC_X25/fpga_25g/ip/pcie4_uscale_plus_0.tcl b/fpga/mqnic/Nexus_K3P_S/fpga_25g/ip/pcie4_uscale_plus_0.tcl similarity index 100% rename from fpga/mqnic/ExaNIC_X25/fpga_25g/ip/pcie4_uscale_plus_0.tcl rename to fpga/mqnic/Nexus_K3P_S/fpga_25g/ip/pcie4_uscale_plus_0.tcl diff --git a/fpga/mqnic/ExaNIC_X25/fpga_25g/lib b/fpga/mqnic/Nexus_K3P_S/fpga_25g/lib similarity index 100% rename from fpga/mqnic/ExaNIC_X25/fpga_25g/lib rename to fpga/mqnic/Nexus_K3P_S/fpga_25g/lib diff --git a/fpga/mqnic/ExaNIC_X25/fpga_25g/rtl/common b/fpga/mqnic/Nexus_K3P_S/fpga_25g/rtl/common similarity index 100% rename from fpga/mqnic/ExaNIC_X25/fpga_25g/rtl/common rename to fpga/mqnic/Nexus_K3P_S/fpga_25g/rtl/common diff --git a/fpga/mqnic/ExaNIC_X25/fpga_25g/rtl/fpga.v b/fpga/mqnic/Nexus_K3P_S/fpga_25g/rtl/fpga.v similarity index 100% rename from fpga/mqnic/ExaNIC_X25/fpga_25g/rtl/fpga.v rename to fpga/mqnic/Nexus_K3P_S/fpga_25g/rtl/fpga.v diff --git a/fpga/mqnic/ExaNIC_X25/fpga_25g/rtl/fpga_core.v b/fpga/mqnic/Nexus_K3P_S/fpga_25g/rtl/fpga_core.v similarity index 100% rename from fpga/mqnic/ExaNIC_X25/fpga_25g/rtl/fpga_core.v rename to fpga/mqnic/Nexus_K3P_S/fpga_25g/rtl/fpga_core.v diff --git a/fpga/mqnic/ExaNIC_X25/fpga_25g/rtl/sync_signal.v b/fpga/mqnic/Nexus_K3P_S/fpga_25g/rtl/sync_signal.v similarity index 100% rename from fpga/mqnic/ExaNIC_X25/fpga_25g/rtl/sync_signal.v rename to fpga/mqnic/Nexus_K3P_S/fpga_25g/rtl/sync_signal.v diff --git a/fpga/mqnic/ExaNIC_X25/fpga_25g/tb/fpga_core/Makefile b/fpga/mqnic/Nexus_K3P_S/fpga_25g/tb/fpga_core/Makefile similarity index 100% rename from fpga/mqnic/ExaNIC_X25/fpga_25g/tb/fpga_core/Makefile rename to fpga/mqnic/Nexus_K3P_S/fpga_25g/tb/fpga_core/Makefile diff --git a/fpga/mqnic/ExaNIC_X25/fpga_25g/tb/fpga_core/mqnic.py b/fpga/mqnic/Nexus_K3P_S/fpga_25g/tb/fpga_core/mqnic.py similarity index 100% rename from fpga/mqnic/ExaNIC_X25/fpga_25g/tb/fpga_core/mqnic.py rename to fpga/mqnic/Nexus_K3P_S/fpga_25g/tb/fpga_core/mqnic.py diff --git a/fpga/mqnic/ExaNIC_X25/fpga_25g/tb/fpga_core/test_fpga_core.py b/fpga/mqnic/Nexus_K3P_S/fpga_25g/tb/fpga_core/test_fpga_core.py similarity index 100% rename from fpga/mqnic/ExaNIC_X25/fpga_25g/tb/fpga_core/test_fpga_core.py rename to fpga/mqnic/Nexus_K3P_S/fpga_25g/tb/fpga_core/test_fpga_core.py diff --git a/modules/mqnic/mqnic_board.c b/modules/mqnic/mqnic_board.c index 146260cd3..5058b57b8 100644 --- a/modules/mqnic/mqnic_board.c +++ b/modules/mqnic/mqnic_board.c @@ -471,8 +471,8 @@ static int mqnic_generic_board_init(struct mqnic_dev *mqnic) init_mac_list_from_eeprom_base_hex(mqnic, mqnic->eeprom_i2c_client, 4, MQNIC_MAX_IF); break; - case MQNIC_BOARD_ID_EXANIC_X10: - case MQNIC_BOARD_ID_EXANIC_X25: + case MQNIC_BOARD_ID_NEXUS_K35_S: + case MQNIC_BOARD_ID_NEXUS_K3P_S: case MQNIC_BOARD_ID_ADM_PCIE_9V3: request_module("at24"); diff --git a/modules/mqnic/mqnic_hw.h b/modules/mqnic/mqnic_hw.h index 64a56a559..f7f131366 100644 --- a/modules/mqnic/mqnic_hw.h +++ b/modules/mqnic/mqnic_hw.h @@ -65,8 +65,8 @@ #define MQNIC_BOARD_ID_ZCU106 0x10ee906a #define MQNIC_BOARD_ID_XUPP3R 0x12ba9823 #define MQNIC_BOARD_ID_FB2CG_KU15P 0x1c2ca00e -#define MQNIC_BOARD_ID_EXANIC_X10 0x1ce40003 -#define MQNIC_BOARD_ID_EXANIC_X25 0x1ce40009 +#define MQNIC_BOARD_ID_NEXUS_K35_S 0x1ce40003 +#define MQNIC_BOARD_ID_NEXUS_K3P_S 0x1ce40009 #define MQNIC_BOARD_ID_DNPCIE_40G_KU 0x17df1a00 #define MQNIC_BOARD_ID_ADM_PCIE_9V3 0x41449003