From nobody Thu Nov 13 00:29:19 2025 X-Original-To: dev-commits-src-main@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 4d6Lk75b5Pz6Gr5J; Thu, 13 Nov 2025 00:29:19 +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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4d6Lk74sF9z3HDY; Thu, 13 Nov 2025 00:29:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1762993759; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oPMjDVqx2a5OhSjpl6Arpekbrq8h76/s9TU5DPDAxY0=; b=Qp1ImKn4KAcJmC8Fp2whm8PneQzC09U/dgCSsr2GhBxPFS1SIyk5Q5fTku8eZtgU+MNXui O1cpgVjROdrhS8kpE664pI6qpr/2RfohLWMsogAuY0B+cXlO/YzTQO6Id0s9HBfP319lZG nAdrMRr7TNNihLf8z2TZprJK5g96ZcuwkLrPejboB8aOgpnA+iQ4odiNFd6Ig39Jb7b+bv +9K5efSzkkiiTQS6ZyWsrDO5Al/+GaPtFXMzNCvOk1JCa4qEN2ZamJEKxZTT84dTpqbCo+ nDxwKrnQp7/3EnzYUSBBAqgy1l+UpxuC4s8ys8un12dqWgqeSRFFPJNany8Slg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1762993759; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oPMjDVqx2a5OhSjpl6Arpekbrq8h76/s9TU5DPDAxY0=; b=FV7W4Bh7d4rNiC7nR2aEwQYgB2JT1KSwF6zjIV0Ib8kFcoesUBsv/Bv0CLo44vJEpoMqrZ QRQmZshw+QN21Nv3vCysSP+xS8Du+5uVgMyvGx1nQTPXhxBepu/2fWdVTT3eTl68ST/Qv4 j3ONcflznyuQIt1TSLd7XLjLyzLGysWmGqWHQyimGGbYvdM5gG5XGcbI3QfrmWMW22kUeI 0EWXAjGuMHYvUNWEIFhEtXRh7/lJPsdIsHuw36fVHQgboLb3EhTzwT0zxSUp6/3ADVH292 E8dSnmRh4ywm7fKRzxpbmCoLK2xPRSLPlmhaw1K8X+NENJN3akRluHanYNkNkg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1762993759; a=rsa-sha256; cv=none; b=cECH6eeHn5T/a9CZG/tbJIFUOaX7sOj2lU+tHCGDzFzRLFah2YWxMqSPGVkxoEkRrL4s1e KWcqTT27CmWWj6Jf1Z+MMSALvxXtFk7+HNRyFaue1FiX/H5MOr3PUmhN33WynJwjAQYMEo Ff5fpE5SuhGGJGBo189K1UE+8wCpxa3qU3D16zee/PbJY5pcn/OsCPRxL0OInQ9jszX9tU KFpyvTKTcvoRG7XcSkzeBGeVu4MB/IbYOVJ5ZWrM6wXV147QehvJCX2yGDGqFuNpsm+JrL p8uQukM6Ta0uJ9NuscCCbK53leNvoPqc7rs+tb82M4f1AcCTOnwpY39nthWL/Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4d6Lk74Rl7zxpR; Thu, 13 Nov 2025 00:29:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5AD0TJr7044830; Thu, 13 Nov 2025 00:29:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5AD0TJ5u044827; Thu, 13 Nov 2025 00:29:19 GMT (envelope-from git) Date: Thu, 13 Nov 2025 00:29:19 GMT Message-Id: <202511130029.5AD0TJ5u044827@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Navdeep Parhar Subject: git: 4b17bb0edea0 - main - cxgbe(4): Add support for QSFP-DD connector and 400G transceivers List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: np X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4b17bb0edea0341d81eba3d369bd7739e5683d4b Auto-Submitted: auto-generated The branch main has been updated by np: URL: https://cgit.FreeBSD.org/src/commit/?id=4b17bb0edea0341d81eba3d369bd7739e5683d4b commit 4b17bb0edea0341d81eba3d369bd7739e5683d4b Author: Navdeep Parhar AuthorDate: 2025-10-16 18:23:49 +0000 Commit: Navdeep Parhar CommitDate: 2025-11-13 00:11:47 +0000 cxgbe(4): Add support for QSFP-DD connector and 400G transceivers Tested with SR8 and DR4 transceivers. MFC after: 1 week Sponsored by: Chelsio Communications --- sys/dev/cxgbe/firmware/t4fw_interface.h | 7 ++++--- sys/dev/cxgbe/t4_main.c | 15 ++++++++++++++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/sys/dev/cxgbe/firmware/t4fw_interface.h b/sys/dev/cxgbe/firmware/t4fw_interface.h index 5874f0343b03..b11552dce021 100644 --- a/sys/dev/cxgbe/firmware/t4fw_interface.h +++ b/sys/dev/cxgbe/firmware/t4fw_interface.h @@ -8967,9 +8967,10 @@ enum fw_port_type { FW_PORT_TYPE_SFP28 = 20, /* No, 1, 25G/10G/1G */ FW_PORT_TYPE_KR_SFP28 = 21, /* No, 1, 25G/10G/1G using Backplane */ FW_PORT_TYPE_KR_XLAUI = 22, /* No, 4, 40G/10G/1G, No AN*/ - FW_PORT_TYPE_SFP56 = 26, - FW_PORT_TYPE_QSFP56 = 27, - FW_PORT_TYPE_NONE = M_FW_PORT_CMD_PTYPE + FW_PORT_TYPE_SFP56 = 26, /* No, 1, 50G/25G */ + FW_PORT_TYPE_QSFP56 = 27, /* No, 4, 200G/100G/50G/25G */ + FW_PORT_TYPE_QSFPDD = 34, /* No, 8, 400G/200G/100G/50G */ + FW_PORT_TYPE_NONE = M_FW_PORT_CMD_PORTTYPE32 }; static inline bool diff --git a/sys/dev/cxgbe/t4_main.c b/sys/dev/cxgbe/t4_main.c index 6133d810c003..99d9cad9f013 100644 --- a/sys/dev/cxgbe/t4_main.c +++ b/sys/dev/cxgbe/t4_main.c @@ -3652,6 +3652,7 @@ port_mword(struct port_info *pi, uint32_t speed) case FW_PORT_TYPE_SFP28: case FW_PORT_TYPE_SFP56: case FW_PORT_TYPE_QSFP56: + case FW_PORT_TYPE_QSFPDD: /* Pluggable transceiver */ switch (pi->mod_type) { case FW_PORT_MOD_TYPE_LR: @@ -3671,6 +3672,8 @@ port_mword(struct port_info *pi, uint32_t speed) return (IFM_100G_LR4); case FW_PORT_CAP32_SPEED_200G: return (IFM_200G_LR4); + case FW_PORT_CAP32_SPEED_400G: + return (IFM_400G_LR8); } break; case FW_PORT_MOD_TYPE_SR: @@ -3689,6 +3692,8 @@ port_mword(struct port_info *pi, uint32_t speed) return (IFM_100G_SR4); case FW_PORT_CAP32_SPEED_200G: return (IFM_200G_SR4); + case FW_PORT_CAP32_SPEED_400G: + return (IFM_400G_SR8); } break; case FW_PORT_MOD_TYPE_ER: @@ -3712,6 +3717,8 @@ port_mword(struct port_info *pi, uint32_t speed) return (IFM_100G_CR4); case FW_PORT_CAP32_SPEED_200G: return (IFM_200G_CR4_PAM4); + case FW_PORT_CAP32_SPEED_400G: + return (IFM_400G_CR8); } break; case FW_PORT_MOD_TYPE_LRM: @@ -3723,10 +3730,12 @@ port_mword(struct port_info *pi, uint32_t speed) return (IFM_100G_DR); if (speed == FW_PORT_CAP32_SPEED_200G) return (IFM_200G_DR4); + if (speed == FW_PORT_CAP32_SPEED_400G) + return (IFM_400G_DR4); break; case FW_PORT_MOD_TYPE_NA: MPASS(0); /* Not pluggable? */ - /* fall throough */ + /* fall through */ case FW_PORT_MOD_TYPE_ERROR: case FW_PORT_MOD_TYPE_UNKNOWN: case FW_PORT_MOD_TYPE_NOTSUPPORTED: @@ -3735,6 +3744,10 @@ port_mword(struct port_info *pi, uint32_t speed) return (IFM_NONE); } break; + case M_FW_PORT_CMD_PTYPE: /* FW_PORT_TYPE_NONE for old firmware */ + if (chip_id(pi->adapter) >= CHELSIO_T7) + return (IFM_UNKNOWN); + /* fall through */ case FW_PORT_TYPE_NONE: return (IFM_NONE); }