From owner-svn-src-all@freebsd.org Thu Nov 19 12:55:45 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0BF6BA310C8; Thu, 19 Nov 2015 12:55:45 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C0BB61024; Thu, 19 Nov 2015 12:55:44 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tAJCthKX044478; Thu, 19 Nov 2015 12:55:43 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tAJCthKI044473; Thu, 19 Nov 2015 12:55:43 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201511191255.tAJCthKI044473@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Thu, 19 Nov 2015 12:55:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r291072 - in head: share/man/man4 sys/conf sys/modules X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Nov 2015 12:55:45 -0000 Author: hselasky Date: Thu Nov 19 12:55:43 2015 New Revision: 291072 URL: https://svnweb.freebsd.org/changeset/base/291072 Log: Add the mlx5 and mlx5en modules to the i386 and amd64 kernel builds by default and add a manual page for mlx5en. The mlx5 module contains shared code for both infiniband and ethernet. The mlx5en module contains specific code for ethernet functionality only. A mlx5ib module is in the works for infiniband support. Supported hardware: - ConnectX-4: 10/20/25/40/50/56/100Gb/s speeds. - ConnectX-4 LX: 10/25/40/50Gb/s speeds (low power consumption) Refer to the mlx5en(4) manual page for a comprehensive list. The team porting the mlx5 driver(s) to FreeBSD: - Hans Petter Selasky - Oded Shanoon - Meny Yossefi - Shany Michaely - Shahar Klein - Daria Genzel - Mark Bloch Differential Revision: https://reviews.freebsd.org/D4163 Submitted by: Mark Block Sponsored by: Mellanox Technologies Reviewed by: gnn @ MFC after: 3 days Added: head/share/man/man4/mlx5en.4 (contents, props changed) Modified: head/share/man/man4/Makefile head/sys/conf/NOTES head/sys/conf/files head/sys/modules/Makefile Modified: head/share/man/man4/Makefile ============================================================================== --- head/share/man/man4/Makefile Thu Nov 19 12:03:11 2015 (r291071) +++ head/share/man/man4/Makefile Thu Nov 19 12:55:43 2015 (r291072) @@ -274,6 +274,7 @@ MAN= aac.4 \ mk48txx.4 \ mld.4 \ mlx.4 \ + mlx5en.4 \ mly.4 \ mmc.4 \ mmcsd.4 \ @@ -652,6 +653,7 @@ MLINKS+=lp.4 plip.4 MLINKS+=malo.4 if_malo.4 MLINKS+=md.4 vn.4 MLINKS+=mem.4 kmem.4 +MLINKS+=mlx5en.4 mce.4 MLINKS+=mn.4 if_mn.4 MLINKS+=mos.4 if_mos.4 MLINKS+=msk.4 if_msk.4 Added: head/share/man/man4/mlx5en.4 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/man/man4/mlx5en.4 Thu Nov 19 12:55:43 2015 (r291072) @@ -0,0 +1,124 @@ +.\" Copyright (c) 2015 Mellanox Technologies +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS `AS IS' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd November 15, 2015 +.Dt mlx5en 4 +.Os +.Sh NAME +.Nm mlx5en +.Nd "Mellanox ConnectX-4 and ConnectX-4 LX based 100Gb, 50Gb, 40Gb, 25Gb and 10Gb Ethernet adapter driver" +.Sh SYNOPSIS +To compile this driver into the kernel, +place the following lines in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd "options COMPAT_LINUXKPI" +.Cd "device mlx5" +.Cd "device mlx5en" +.Ed +.Pp +To load the driver as a +module at boot time, place the following lines in +.Xr loader.conf 5 : +.Bd -literal -offset indent +mlx5en_load="YES" +.Ed +.Sh DESCRIPTION +The +.Nm +driver provides support for PCI Express Ethernet adapters based on +ConnectX-4 and ConnectX-4 LX. +The driver supports Jumbo Frames, Transmit/Receive checksum offload, +TCP segmentation offload (TSO), Large Receive Offload (LRO), +HW Large Receive Offload (HW LRO), VLAN tag insertion/extraction, +VLAN checksum offload, VLAN TSO, and Receive Side Steering (RSS). +.br +The network Interface is named mce. +.br +For further hardware information and questions related to hardware +requirements, see +.Pa http://www.mellanox.com/ . +.Pp +For more information on configuring this device, see +.Xr ifconfig 8 . +.Sh HARDWARE +The +.Nm +driver supports 100Gb, 50Gb, 40Gb, 25Gb and 10Gb Ethernet adapters. +ConnectX-4 supports:10/20/25/40/50/56/100Gb/s speeds. +ConnectX-4 LX supports:10/25/40/50Gb/s speeds (and reduced power consumption) : +.Pp +.Bl -bullet -compact +.It +Mellanox MCX455A-ECAT +.It +Mellanox MCX456A-ECAT +.It +Mellanox MCX415A-CCAT +.It +Mellanox MCX416A-CCAT +.It +Mellanox MCX455A-FCAT +.It +Mellanox MCX456A-FCAT +.It +Mellanox MCX415A-BCAT +.It +Mellanox MCX416A-BCAT +.It +Mellanox MCX4131A-GCAT +.It +Mellanox MCX4131A-BCAT +.It +Mellanox MCX4121A-ACAT +.It +Mellanox MCX4111A-ACAT +.It +Mellanox MCX4121A-XCAT +.It +Mellanox MCX4111A-XCAT +.El +.Sh SUPPORT +For general information and support, +go to the Mellanox support website at: +.Pa http://www.mellanox.com/ . +.Pp +If an issue is identified with this driver with a supported adapter, +email all the specific information related to the issue to +.Aq Mt freebsd-drivers@mellanox.com . +.Sh SEE ALSO +.Xr ifconfig 8 +.Sh HISTORY +The +.Nm +device driver first appeared in +.Fx 11.0 . +.Sh AUTHORS +.An -nosplit +The +.Nm +driver was written by +.An Mellanox Technologies . Modified: head/sys/conf/NOTES ============================================================================== --- head/sys/conf/NOTES Thu Nov 19 12:03:11 2015 (r291071) +++ head/sys/conf/NOTES Thu Nov 19 12:55:43 2015 (r291072) @@ -1963,6 +1963,8 @@ device xmphy # XaQti XMAC II # 88E8062, 88E8035, 88E8036, 88E8038, 88E8050, 88E8052, 88E8053, # 88E8055, 88E8056 and D-Link 560T/550SX. # lmc: Support for the LMC/SBE wide-area network interface cards. +# mlx5: Mellanox ConnectX-4 and ConnectX-4 LX IB and Eth shared code module. +# mlx5en:Mellanox ConnectX-4 and ConnectX-4 LX PCIe Ethernet adapters. # my: Myson Fast Ethernet (MTD80X, MTD89X) # nge: Support for PCI gigabit ethernet adapters based on the National # Semiconductor DP83820 and DP83821 chipset. This includes the @@ -2081,6 +2083,8 @@ device gem # Apple GMAC/Sun ERI/Sun GE device hme # Sun HME (Happy Meal Ethernet) device jme # JMicron JMC250 Gigabit/JMC260 Fast Ethernet device lge # Level 1 LXT1001 gigabit Ethernet +device mlx5 # Shared code module between IB and Ethernet +device mlx5en # Mellanox ConnectX-4 and ConnectX-4 LX device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet device my # Myson Fast Ethernet (MTD80X, MTD89X) device nge # NatSemi DP83820 gigabit Ethernet Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Thu Nov 19 12:03:11 2015 (r291071) +++ head/sys/conf/files Thu Nov 19 12:55:43 2015 (r291072) @@ -4052,6 +4052,60 @@ ofed/drivers/net/mlx4/en_tx.c optional no-depend obj-prefix "mlx4_" \ compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" +dev/mlx5/mlx5_core/mlx5_alloc.c optional mlx5 pci \ + no-depend compile-with "${OFED_C}" +dev/mlx5/mlx5_core/mlx5_cmd.c optional mlx5 pci \ + no-depend compile-with "${OFED_C}" +dev/mlx5/mlx5_core/mlx5_cq.c optional mlx5 pci \ + no-depend compile-with "${OFED_C}" +dev/mlx5/mlx5_core/mlx5_eq.c optional mlx5 pci \ + no-depend compile-with "${OFED_C}" +dev/mlx5/mlx5_core/mlx5_flow_table.c optional mlx5 pci \ + no-depend compile-with "${OFED_C}" +dev/mlx5/mlx5_core/mlx5_fw.c optional mlx5 pci \ + no-depend compile-with "${OFED_C}" +dev/mlx5/mlx5_core/mlx5_health.c optional mlx5 pci \ + no-depend compile-with "${OFED_C}" +dev/mlx5/mlx5_core/mlx5_mad.c optional mlx5 pci \ + no-depend compile-with "${OFED_C}" +dev/mlx5/mlx5_core/mlx5_main.c optional mlx5 pci \ + no-depend compile-with "${OFED_C}" +dev/mlx5/mlx5_core/mlx5_mcg.c optional mlx5 pci \ + no-depend compile-with "${OFED_C}" +dev/mlx5/mlx5_core/mlx5_mr.c optional mlx5 pci \ + no-depend compile-with "${OFED_C}" +dev/mlx5/mlx5_core/mlx5_pagealloc.c optional mlx5 pci \ + no-depend compile-with "${OFED_C}" +dev/mlx5/mlx5_core/mlx5_pd.c optional mlx5 pci \ + no-depend compile-with "${OFED_C}" +dev/mlx5/mlx5_core/mlx5_port.c optional mlx5 pci \ + no-depend compile-with "${OFED_C}" +dev/mlx5/mlx5_core/mlx5_qp.c optional mlx5 pci \ + no-depend compile-with "${OFED_C}" +dev/mlx5/mlx5_core/mlx5_srq.c optional mlx5 pci \ + no-depend compile-with "${OFED_C}" +dev/mlx5/mlx5_core/mlx5_transobj.c optional mlx5 pci \ + no-depend compile-with "${OFED_C}" +dev/mlx5/mlx5_core/mlx5_uar.c optional mlx5 pci \ + no-depend compile-with "${OFED_C}" +dev/mlx5/mlx5_core/mlx5_vport.c optional mlx5 pci \ + no-depend compile-with "${OFED_C}" +dev/mlx5/mlx5_core/mlx5_wq.c optional mlx5 pci \ + no-depend compile-with "${OFED_C}" + +dev/mlx5/mlx5_en/mlx5_en_ethtool.c optional mlx5en pci inet inet6 \ + no-depend compile-with "${OFED_C}" +dev/mlx5/mlx5_en/mlx5_en_main.c optional mlx5en pci inet inet6 \ + no-depend compile-with "${OFED_C}" +dev/mlx5/mlx5_en/mlx5_en_tx.c optional mlx5en pci inet inet6 \ + no-depend compile-with "${OFED_C}" +dev/mlx5/mlx5_en/mlx5_en_flow_table.c optional mlx5en pci inet inet6 \ + no-depend compile-with "${OFED_C}" +dev/mlx5/mlx5_en/mlx5_en_rx.c optional mlx5en pci inet inet6 \ + no-depend compile-with "${OFED_C}" +dev/mlx5/mlx5_en/mlx5_en_txrx.c optional mlx5en pci inet inet6 \ + no-depend compile-with "${OFED_C}" + ofed/drivers/infiniband/hw/mthca/mthca_allocator.c optional mthca \ no-depend compile-with "${OFED_C}" ofed/drivers/infiniband/hw/mthca/mthca_av.c optional mthca \ Modified: head/sys/modules/Makefile ============================================================================== --- head/sys/modules/Makefile Thu Nov 19 12:03:11 2015 (r291071) +++ head/sys/modules/Makefile Thu Nov 19 12:55:43 2015 (r291072) @@ -226,6 +226,8 @@ SUBDIR= \ ${_mlx4} \ ${_mlx4ib} \ ${_mlxen} \ + ${_mlx5} \ + ${_mlx5en} \ ${_mly} \ mmc \ mmcsd \ @@ -608,6 +610,11 @@ _mlx4= mlx4 _mlx4ib= mlx4ib _mlxen= mlxen .endif +_mlx5= mlx5 +.if (${MK_INET_SUPPORT} != "no" && ${MK_INET6_SUPPORT} != "no") || \ + defined(ALL_MODULES) +_mlx5en= mlx5en +.endif _mly= mly .if ${MK_OFED} != "no" || defined(ALL_MODULES) _mthca= mthca