From nobody Mon Jul 6 01:43:00 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4gtnDj3lX5z6kBRv for ; Mon, 06 Jul 2026 01:43:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gtnDj0YRtz3XcC for ; Mon, 06 Jul 2026 01:43:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1783302181; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=agMCJH3s/Kww7843YgyNtrZZd5HTt2N3LzDs5YHSphk=; b=uiPXIKWqcYSamoDLWgNVwm/+rUwPsmML/OJnpyet2WzpweMrVzO/drqazXsVgS5LBAalhH yXQnkfEvQ0gaTmbWc609tV//JEV9TT89XKPfIxLtP95Xu3ghNhG3QfuXM7gJuOS3EUWPJO HAIELX6iE7FwmsnXbitAOjHihegt9W4hnWU3ZE8zRSc+gYnPXNbW6yySFai4lEFdkOkDSg 8wcj+6yTLPMlcXjKlArmjPOX9vw5rTX1/WuqM0WklHRXWqYlhLHyNuRtTqTs2+wf+aJL3D Wt5Jxk/1hI0s1smvJdHT/wOAP5QN08KJ0Q8uJsbT7sFtN7UCQhIHiohXHDK/8w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1783302181; a=rsa-sha256; cv=none; b=IpYky0RuhEXTjUI795JU9t+CcG4BXJnVt2knW7+rHssuCHKqWECAW7JJ5GiI0CPtlo8Fn8 pQM2nIuWiJTC30/a4VHkJd+QTXFB95oGNdtfbyic1v9LX2iuWkxtzKHLxUYa7no7ShNbEV AKsxD1WNBynfSHhEzQocnRH3rgRW0Y9uxVL05kHKCdUYcHjLnR1jxtWKBFi6SzmXYe2AE0 nR0fxKAOvhUoryNZ2aQc6dynrCW4+P6x+In8RQSQ/U5gN5qb4Go0UulrJ4fmk4VQlBclBi fXx//oQ5+PN0gBhZTn5Z17Y62Ep/9J6ygFRUXpN9eYbBxHwO9xBKFQiwYktVJg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1783302181; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=agMCJH3s/Kww7843YgyNtrZZd5HTt2N3LzDs5YHSphk=; b=VsBHKoAOdw2k8rnsGtmUGVNx+s2z/oZfa9G0Esds+kYaPRJ2ZAcF0Hlx/XVzuBbHelz7f5 DKPXzgffkV6M4AViypxoiAhrOsYCWCkhdG+i+Z93GyyTrkAr4p3sffT4H4Uywem3yCcU2Q QeNnlN+QIxdCRR1LuwcQFNJ2NljBatt/Fw6rGtIxTdrSMyqwWZTG5a3/X97rKqvpUBPapi nH9QibDMGZbFVLi+xp9xpVtSyJeejCaXU8OpXYZXGTNd7FUacp7rPu2NNR5W+wP1yOlu/s v82wIOUwfOs/ff1qxt+ycPJYa4qqqPSgjIk6pdUbwgLn1Yl38SjhgwDnXowgfw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gtnDh6jN4zkmW for ; Mon, 06 Jul 2026 01:43:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3ecb4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 06 Jul 2026 01:43:00 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Slava Shwartsman From: Konstantin Belousov Subject: git: 3ab9e202117b - stable/15 - mlx5: Add support for 800Gbit/s and 400Gbit/s with 2 lanes List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 3ab9e202117be3e93195fdf6ad71d3c5a484b629 Auto-Submitted: auto-generated Date: Mon, 06 Jul 2026 01:43:00 +0000 Message-Id: <6a4b0824.3ecb4.3e2615a1@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=3ab9e202117be3e93195fdf6ad71d3c5a484b629 commit 3ab9e202117be3e93195fdf6ad71d3c5a484b629 Author: Slava Shwartsman AuthorDate: 2026-05-13 14:22:48 +0000 Commit: Konstantin Belousov CommitDate: 2026-07-06 01:35:50 +0000 mlx5: Add support for 800Gbit/s and 400Gbit/s with 2 lanes (cherry picked from commit 3e4cbdebfc9bcb2f2c64acc8ee8f67c3383cd676) --- sys/dev/mlx5/mlx5_core/mlx5_port.c | 4 ++++ sys/dev/mlx5/mlx5_en/mlx5_en_main.c | 44 +++++++++++++++++++++++++++++++++++++ sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c | 12 ++++++++++ sys/dev/mlx5/port.h | 3 +++ 4 files changed, 63 insertions(+) diff --git a/sys/dev/mlx5/mlx5_core/mlx5_port.c b/sys/dev/mlx5/mlx5_core/mlx5_port.c index af01bfae1b4e..fc192ec6a23b 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_port.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_port.c @@ -1331,6 +1331,10 @@ static const u32 mlx5e_ext_link_speed[/*MLX5E_EXT_LINK_MODES_NUMBER*/] = { [MLX5E_CAUI_4_100GBASE_CR4_KR4] = 100000, [MLX5E_200GAUI_4_200GBASE_CR4_KR4] = 200000, [MLX5E_400GAUI_8] = 400000, + [MLX5E_400GAUI_4_400GBASE_CR4_KR4] = 400000, + [MLX5E_400GAUI_2_400GBASE_CR2_KR2] = 400000, + [MLX5E_800GAUI_8_800GBASE_CR8_KR8] = 800000, + [MLX5E_800GAUI_4_800GBASE_CR4_KR4] = 800000, }; static void mlx5e_port_get_speed_arr(struct mlx5_core_dev *mdev, diff --git a/sys/dev/mlx5/mlx5_en/mlx5_en_main.c b/sys/dev/mlx5/mlx5_en/mlx5_en_main.c index 78663e75e2b9..f5d4c4d23cbe 100644 --- a/sys/dev/mlx5/mlx5_en/mlx5_en_main.c +++ b/sys/dev/mlx5/mlx5_en/mlx5_en_main.c @@ -352,6 +352,48 @@ static const struct media mlx5e_ext_mode_table[MLX5E_EXT_LINK_SPEEDS_NUMBER][MLX .subtype = IFM_400G_LR8, /* XXX */ .baudrate = IF_Gbps(400ULL), }, + + /**/ + [MLX5E_400GAUI_2_400GBASE_CR2_KR2][MLX5E_PORT_UNKNOWN] = { + .subtype = IFM_400G_KR2_PAM4, + .baudrate = IF_Gbps(400ULL), + }, + [MLX5E_400GAUI_2_400GBASE_CR2_KR2][MLX5E_PORT_DA] = { + .subtype = IFM_400G_CR2, + .baudrate = IF_Gbps(400ULL), + }, + [MLX5E_400GAUI_2_400GBASE_CR2_KR2][MLX5E_PORT_FIBRE] = { + .subtype = IFM_400G_SR2, + .baudrate = IF_Gbps(400ULL), + }, + + /**/ + [MLX5E_800GAUI_8_800GBASE_CR8_KR8][MLX5E_PORT_UNKNOWN] = { + .subtype = IFM_800G_KR8, /* 800GAUI-8 / KR8a */ + .baudrate = IF_Gbps(800ULL), + }, + [MLX5E_800GAUI_8_800GBASE_CR8_KR8][MLX5E_PORT_DA] = { + .subtype = IFM_800G_CR8, /* 800GBASE-CR8 */ + .baudrate = IF_Gbps(800ULL), + }, + [MLX5E_800GAUI_8_800GBASE_CR8_KR8][MLX5E_PORT_FIBRE] = { + .subtype = IFM_800G_SR8, + .baudrate = IF_Gbps(800ULL), + }, + + /**/ + [MLX5E_800GAUI_4_800GBASE_CR4_KR4][MLX5E_PORT_UNKNOWN] = { + .subtype = IFM_800G_KR4_PAM4, /* 800GAUI-4 / KR4 */ + .baudrate = IF_Gbps(800ULL), + }, + [MLX5E_800GAUI_4_800GBASE_CR4_KR4][MLX5E_PORT_DA] = { + .subtype = IFM_800G_CR4, /* 800GBASE-CR4 */ + .baudrate = IF_Gbps(800ULL), + }, + [MLX5E_800GAUI_4_800GBASE_CR4_KR4][MLX5E_PORT_FIBRE] = { + .subtype = IFM_800G_SR4, + .baudrate = IF_Gbps(800ULL), + }, }; static const struct if_snd_tag_sw mlx5e_ul_snd_tag_sw = { @@ -404,6 +446,8 @@ mlx5e_update_carrier(struct mlx5e_priv *priv) eth_proto_oper = MLX5_GET_ETH_PROTO(ptys_reg, out, ext, eth_proto_oper); connector_type = MLX5_GET(ptys_reg, out, connector_type); + if (connector_type >= MLX5E_CONNECTOR_TYPE_NUMBER) + connector_type = MLX5E_PORT_UNKNOWN; i = ilog2(eth_proto_oper); if (ext) { diff --git a/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c b/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c index 6ff4e55630d7..cf1e5f4324d8 100644 --- a/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c +++ b/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c @@ -273,6 +273,18 @@ static int translate_eth_ext_proto_oper(u32 eth_proto_oper, u16 *active_speed, *active_width = IB_WIDTH_4X; *active_speed = IB_SPEED_NDR; break; + case MLX5E_PROT_MASK(MLX5E_400GAUI_2_400GBASE_CR2_KR2): + *active_width = IB_WIDTH_2X; + *active_speed = IB_SPEED_XDR; + break; + case MLX5E_PROT_MASK(MLX5E_800GAUI_8_800GBASE_CR8_KR8): + *active_width = IB_WIDTH_8X; + *active_speed = IB_SPEED_NDR; + break; + case MLX5E_PROT_MASK(MLX5E_800GAUI_4_800GBASE_CR4_KR4): + *active_width = IB_WIDTH_4X; + *active_speed = IB_SPEED_XDR; + break; default: *active_width = IB_WIDTH_4X; *active_speed = IB_SPEED_QDR; diff --git a/sys/dev/mlx5/port.h b/sys/dev/mlx5/port.h index a35265852ae4..6c1e6e629856 100644 --- a/sys/dev/mlx5/port.h +++ b/sys/dev/mlx5/port.h @@ -125,6 +125,9 @@ enum mlx5e_ext_link_speed { MLX5E_200GAUI_2_200GBASE_CR2_KR2 = 13, MLX5E_400GAUI_8 = 15, MLX5E_400GAUI_4_400GBASE_CR4_KR4 = 16, + MLX5E_400GAUI_2_400GBASE_CR2_KR2 = 17, + MLX5E_800GAUI_8_800GBASE_CR8_KR8 = 19, + MLX5E_800GAUI_4_800GBASE_CR4_KR4 = 20, MLX5E_EXT_LINK_SPEEDS_NUMBER = 32, };